#include <gmlib/sm3/sm3.h>
#include <cstring>
#include <stdexcept>

using namespace sm3;

void test_sm3()
{
    SM3 ctx;
    std::uint8_t  digest[SM3::DIGEST_SIZE];

    static std::uint8_t msg0[461]    = {0x63,0x80,0x35,0xf6,0x59,0x9f,0xc8,0x61,0x19,0x67,0x96,0x2b,0xdb,0xcd,0xde,0x6c,0xb7,0x57,0x1c,0xf9,0x8e,0xb2,0x5d,0xf0,0xbd,0x9e,0x8e,0x2c,0x5b,0xdf,0x47,0x5e,0xe3,0x34,0x81,0x7f,0x4b,0xae,0x8f,0x7c,0x58,0x9b,0x6f,0x0e,0xbe,0x91,0x44,0xec,0xe0,0x8a,0x77,0xa3,0xcf,0xd9,0x84,0x88,0x53,0x2d,0x8a,0xb7,0xd1,0x4f,0xab,0xe1,0x04,0xe9,0x2a,0x78,0x28,0xf8,0x99,0xf2,0x7b,0xe8,0x19,0x10,0xc4,0xda,0x8d,0x66,0x56,0xd9,0x3d,0x15,0x3d,0xc9,0x95,0xe9,0x7e,0x55,0xe7,0xf8,0x9c,0x12,0x64,0xcb,0x0e,0x51,0xf3,0x60,0xe0,0xa7,0x2f,0x53,0xc4,0xa8,0x89,0x90,0xb6,0xc3,0xa9,0x0a,0x17,0x1b,0xc7,0xb1,0x48,0x9c,0xf6,0x22,0xbf,0x1f,0x65,0xd0,0x78,0x50,0x71,0xfb,0x30,0x09,0xe1,0xf6,0xd7,0x9f,0x92,0x67,0x45,0x4f,0x15,0x0d,0xaa,0x81,0x8b,0xdc,0x03,0x53,0xdf,0x5b,0xb8,0xfa,0x22,0xa3,0x42,0xa7,0xd3,0xa4,0x9d,0xef,0xaf,0xe1,0x7c,0x05,0x08,0x27,0x16,0xb3,0xde,0xf0,0xcc,0xf6,0x19,0x70,0xa8,0x01,0xf8,0xa9,0xf8,0x29,0x03,0xa0,0xbe,0x1c,0x14,0xf4,0x5c,0x84,0xd4,0xf6,0x32,0x0d,0x7a,0x0f,0xc7,0xcc,0x81,0x11,0x34,0x0a,0x26,0xc8,0x79,0x9b,0xdd,0x36,0x53,0xdf,0x3b,0x9f,0xe7,0xaa,0x3b,0xc4,0xae,0x5d,0x5d,0xb3,0x09,0xb9,0xf8,0xd9,0xbb,0xdb,0xf8,0x6a,0x22,0x0a,0xe8,0x9f,0x19,0xb4,0xe5,0x46,0x37,0xed,0xbc,0xc2,0xec,0x2b,0xec,0x48,0xb8,0x9e,0x92,0x7c,0x20,0x18,0x21,0x33,0xb1,0xf8,0x84,0xa6,0x2e,0xf4,0x75,0xf7,0xf9,0xe6,0x15,0xf5,0xbf,0x89,0xc1,0x7a,0xe3,0x22,0x81,0x3b,0xe6,0xa9,0xfc,0x7d,0xca,0x51,0x8a,0xe8,0x0c,0xc2,0x36,0xad,0xfe,0x84,0x70,0xfe,0xa3,0xc1,0xab,0xaf,0xfa,0xa7,0x4b,0x3c,0x93,0x18,0x8b,0xc9,0x3d,0x1e,0x75,0x82,0xac,0x66,0x58,0x17,0x4d,0x8c,0x7b,0xa0,0x48,0x4e,0xb4,0xc1,0x5c,0x40,0x02,0xee,0x54,0x0d,0x39,0xa3,0xfb,0x19,0x30,0x69,0x76,0x1e,0x36,0x8a,0xd0,0x6c,0x71,0xe1,0xee,0x02,0xd4,0xe4,0x41,0xfe,0x78,0x4b,0xad,0xd1,0x0b,0xb4,0x58,0xee,0xf0,0x40,0xcb,0xa2,0x67,0x27,0x23,0x55,0xa4,0x1a,0x44,0xed,0x1a,0x9f,0xd6,0xae,0x71,0x61,0x2c,0xca,0x21,0xc3,0xf4,0xf3,0xeb,0xbc,0x87,0x64,0x4e,0x87,0x99,0x86,0xa9,0xd0,0x6b,0x34,0xac,0x3f,0x1e,0x0e,0x28,0xd2,0xec,0xfb,0xf9,0x29,0x2f,0xbf,0x02,0x20,0xa6,0x15,0x49,0xad,0x0b,0xe0,0x2f,0x47,0x4a,0x7b,0x7d,0x73,0xba,0x8a,0xec,0xea,0xe6,0x93,0x1c,0x3b,0x5d,0x09,0xca,0xe8,0x66,0xfd,0x36,0xc2,0x75,0x6e,0x8c,0x11,0x53,0x7b,0x63,0x16,0x23,0x04,0x59,0x1b,0xa4,0x2e,0x97,0xe1,0x03,0x38,0x6c,0xe3,0xe9,0xca,0x59,0xa8,0x55,0x40,0x4f,0xce,0x0e,0x6c,0x26,0x86,0xc4,0xe9,0xbb,0xc8,0x1b};
    static std::uint8_t digest0[32] = {0x94,0x78,0x19,0xa7,0x4a,0x34,0xf3,0x05,0xb4,0xc1,0x0e,0x78,0xa9,0x7f,0xdd,0x4b,0xbc,0xaf,0xfe,0xdd,0x1e,0xe9,0xd0,0x26,0x8b,0x72,0x18,0x28,0x0c,0x4d,0xb6,0x20};
    ctx.reset();
    ctx.do_final(digest, msg0, sizeof(msg0));
    if (std::memcmp(digest0, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg1[148]    = {0xc3,0x81,0x3f,0x26,0x67,0xfc,0xdb,0x60,0x95,0x00,0xd1,0x74,0xf0,0x18,0x71,0xcd,0x72,0x4e,0xec,0x8e,0x4a,0x5c,0x42,0xc7,0xa6,0xad,0x85,0x89,0x95,0xb4,0x9a,0x07,0x4c,0xf6,0xbc,0xa0,0x66,0xfb,0x62,0x5f,0xe2,0xe8,0xf1,0x95,0x61,0x5e,0xed,0x37,0x7b,0x8e,0x1e,0x5b,0xbc,0x96,0xf9,0x22,0xf3,0x7c,0x96,0x02,0x84,0x60,0x27,0xff,0x7c,0xd4,0xac,0xc9,0x03,0xcc,0x6c,0x8c,0xa3,0xad,0x98,0x56,0xf8,0x53,0x9a,0x96,0x0f,0x31,0xd0,0x88,0x83,0xe7,0x15,0xad,0x45,0xe7,0xb2,0x7d,0x12,0x60,0x5b,0x79,0x83,0x3b,0x5f,0x44,0x1c,0x93,0x56,0x32,0xc6,0xbd,0xe8,0xe7,0xe6,0x58,0x69,0xfb,0x96,0x04,0xcd,0xad,0xda,0x1a,0x82,0xe0,0x94,0x4c,0xfd,0xdd,0x6d,0x15,0xf2,0xce,0xf2,0xf5,0x6d,0xf4,0x72,0x7e,0x25,0xf9,0xcf,0x4e,0x1b,0x44,0x40,0x84,0xc2,0xdf,0xc2,0xd8,0x41,0xcd};
    static std::uint8_t digest1[32] = {0xf8,0x57,0xc0,0x42,0xde,0x6e,0x3c,0x1d,0x26,0x2c,0x0a,0x40,0x2b,0xb9,0x63,0x52,0x34,0x7f,0xda,0x42,0x4a,0xe1,0xd4,0xcc,0x15,0xc0,0x3c,0x8f,0x62,0x1b,0x0d,0x23};
    ctx.reset();
    ctx.do_final(digest, msg1, sizeof(msg1));
    if (std::memcmp(digest1, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg2[52]    = {0x84,0xf4,0x5a,0x88,0xfd,0xe5,0xdd,0x32,0x43,0x38,0x21,0x9c,0xa1,0x3e,0x96,0x9f,0xff,0x78,0xe3,0x5a,0x7a,0x17,0x33,0xf8,0xc6,0x69,0x51,0x13,0x53,0x82,0xcf,0x3c,0xa1,0x68,0xd3,0x05,0xec,0x57,0x03,0x99,0x6e,0x30,0xb3,0x10,0x69,0x6d,0xad,0x63,0xcf,0x20,0xcc,0xe5};
    static std::uint8_t digest2[32] = {0x43,0xe3,0x94,0x32,0x61,0xa2,0x6e,0x11,0x6b,0xc1,0x83,0x4c,0x25,0x4c,0x0b,0x42,0x33,0xce,0x39,0xcc,0x6a,0xbc,0xff,0x45,0x89,0x67,0x6d,0x2e,0x0f,0xfb,0x59,0x11};
    ctx.reset();
    ctx.do_final(digest, msg2, sizeof(msg2));
    if (std::memcmp(digest2, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg3[426]    = {0x77,0xdc,0x13,0x97,0x0e,0x63,0x25,0x4c,0x90,0xb1,0x77,0xd7,0xaa,0xf4,0x77,0x11,0x85,0x34,0x42,0x51,0x9d,0xe7,0xfd,0xb2,0x10,0xdc,0xe6,0x60,0xe1,0x9c,0xdc,0x3a,0x5b,0x12,0x6c,0xad,0x48,0x93,0xe6,0x94,0x27,0xc2,0x7c,0xa7,0x4e,0xc0,0x88,0x60,0xba,0x2d,0x73,0x39,0x3b,0x1f,0x68,0x27,0x92,0xfb,0x74,0xc5,0x0a,0xbb,0x65,0x79,0x6d,0xd1,0x8a,0x24,0x32,0xe0,0xaa,0xf8,0x63,0xfa,0xd7,0x3d,0xbd,0xc4,0x94,0x9a,0x99,0xe7,0x85,0x05,0x37,0x1d,0x29,0x88,0xb0,0x3c,0x38,0xc8,0xd2,0x4d,0x6f,0x32,0x0e,0xcd,0xde,0x3e,0x49,0xec,0x4b,0xd7,0x93,0x67,0x77,0x9b,0xbd,0x3a,0x76,0xe8,0x3f,0xbc,0xca,0x85,0x9c,0x51,0xd7,0xd2,0xa2,0x15,0x54,0x42,0x30,0x9a,0xc1,0xe0,0x43,0xae,0x8d,0x81,0x40,0x75,0x42,0xb6,0x22,0x19,0x9b,0x27,0x4d,0x9e,0xf9,0x15,0xd7,0xa6,0x5c,0x7c,0x96,0x75,0x75,0xd4,0x32,0xc8,0x54,0x26,0xf0,0x92,0x7a,0x09,0x93,0x0e,0x4e,0x31,0x48,0x7a,0x6e,0x29,0x30,0x06,0x86,0x99,0xea,0xef,0xee,0x46,0x8a,0x14,0x5c,0x74,0xab,0xc6,0xaa,0x45,0x11,0xf9,0xff,0x23,0xd6,0x65,0x3c,0x90,0x85,0x73,0xe0,0x93,0xff,0xfc,0xe6,0x33,0xd8,0x71,0x7d,0x8a,0x57,0xb7,0x99,0xc4,0x54,0x4f,0x62,0x05,0x93,0x29,0xe1,0xad,0xa1,0xc6,0x2d,0x39,0x30,0xdf,0x3e,0xed,0x21,0x21,0x99,0xd2,0x94,0x97,0x84,0x0f,0x13,0x2f,0x2b,0x8b,0x89,0x76,0x02,0x7d,0x1b,0x90,0xe7,0x4b,0x02,0xc9,0x4e,0xb1,0x44,0x74,0xe5,0xad,0x2b,0x86,0x55,0x6f,0x02,0xc5,0xd7,0x58,0x62,0x8e,0xd2,0x95,0xc3,0x93,0xe7,0xd3,0x14,0x4a,0xd5,0xc6,0x2f,0x11,0xc4,0xb5,0x30,0xe4,0x85,0x26,0x85,0x4a,0x98,0xb2,0x51,0x0b,0xeb,0x86,0x56,0x3c,0x9a,0xcd,0xec,0x2a,0x5a,0x75,0x42,0x65,0x2d,0x58,0x9b,0x6d,0x92,0xa7,0xde,0x8f,0x4f,0xac,0x82,0xb1,0xf2,0x4b,0x98,0x3d,0x3c,0x8b,0x2e,0x9d,0xc0,0x57,0x31,0x46,0xe9,0xe8,0xbb,0xd3,0xd4,0x2f,0x3b,0x94,0xd0,0xe7,0xa8,0xf4,0x12,0x42,0x72,0x6b,0x14,0xe5,0x69,0x69,0x0a,0xa4,0xb2,0x56,0x8b,0x5a,0x20,0xc7,0x08,0x80,0x08,0xd1,0xe7,0xe9,0x7e,0x04,0x55,0x7c,0x6f,0x20,0x0c,0xe1,0x01,0x5e,0xdc,0xc1,0x45,0x8c,0x66,0x32,0xce,0xc4,0xb7,0x59,0x63,0x11,0x08,0x1b,0x69,0x56,0xb8,0x13,0xce,0x82,0xec,0x14,0xae,0x65,0xf8,0x63,0x20,0x11,0x82,0xe0,0x82,0x8e,0x50,0xe7,0x49,0x5b,0xac,0x9a,0x4f,0x3e,0x7e,0xa7,0xce,0x66,0x8a,0x63,0x25,0x80,0xf1,0x78,0x15,0x65,0xbc,0x25,0x56,0x10,0x7f,0x20,0xa1,0xd6};
    static std::uint8_t digest3[32] = {0x08,0x62,0xfb,0x84,0x06,0x16,0x19,0x85,0xd8,0x1a,0x8e,0xc6,0x8f,0x29,0x06,0xa8,0x07,0x5a,0x5b,0x13,0x2c,0xbf,0xc3,0x52,0xed,0xfb,0x4a,0xfc,0xa4,0x13,0xe3,0x47};
    ctx.reset();
    ctx.do_final(digest, msg3, sizeof(msg3));
    if (std::memcmp(digest3, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg4[413]    = {0x6d,0xbd,0x78,0x2f,0x29,0x3f,0xed,0x2b,0x13,0x82,0x93,0x2d,0x73,0xea,0x5b,0x69,0x08,0x23,0xd0,0x4d,0x1d,0x58,0x0e,0x8f,0x83,0x80,0xa4,0x6a,0xc3,0xe5,0xb6,0x22,0xee,0xe5,0xeb,0x57,0x91,0x65,0x28,0x95,0x48,0x36,0xbe,0x26,0x60,0x26,0x02,0x18,0x06,0x06,0xa6,0x88,0xd1,0xd9,0xd6,0xfb,0xa3,0xb1,0xf8,0xec,0xff,0x0f,0x33,0xc3,0x56,0x9e,0x98,0x12,0x88,0x1d,0xde,0xfe,0xd3,0x7a,0x9b,0xbb,0xe9,0x61,0xbc,0xa7,0x5c,0xa0,0xf6,0x8a,0xb9,0x7c,0xbd,0xca,0xc0,0x6e,0x18,0x58,0x9e,0x4a,0xf9,0x5f,0x44,0x5f,0xd8,0x3a,0x1b,0xc4,0xbc,0x45,0xff,0x72,0xc8,0x16,0x4a,0x20,0x30,0x7f,0x26,0xce,0x8b,0x6d,0x63,0x94,0x8c,0x7e,0xa2,0xd1,0xfa,0x4c,0x3e,0x22,0xbf,0x38,0xab,0xb0,0x74,0xd7,0x25,0x7a,0x20,0x7b,0xd3,0x8e,0x23,0x0e,0x0f,0x25,0x6d,0xf6,0x8d,0x97,0x5d,0xc8,0xe4,0xec,0xa3,0x61,0x36,0x8d,0x21,0x07,0xd6,0x01,0xbf,0x1c,0x44,0xfa,0xb3,0xf1,0x8e,0x0b,0xa1,0x1d,0xe7,0xf0,0x47,0x0c,0xc8,0x52,0x70,0x5d,0xf4,0xfe,0x2c,0x3e,0x49,0x31,0xa3,0x7f,0x39,0x41,0x94,0x77,0xe1,0x1f,0x54,0xdd,0xbb,0xb2,0xa1,0x5a,0x3e,0xc8,0xb9,0x8c,0x05,0xb4,0x97,0xbe,0xba,0x98,0xd6,0x92,0x4f,0xe1,0x15,0x2c,0x17,0x71,0x0d,0xc4,0xe6,0x5d,0x8b,0x8f,0x7d,0xc4,0x16,0xd8,0x22,0x8c,0xf3,0xb2,0xdc,0x37,0x30,0x65,0x09,0xe8,0x23,0x2f,0x72,0x98,0x55,0x5f,0x80,0x34,0x18,0xdb,0xb6,0x08,0x11,0x70,0x5a,0x7e,0x13,0xaf,0xb1,0x16,0x88,0x12,0x38,0xfe,0x1c,0x32,0x68,0xd4,0xff,0x10,0xb3,0xd4,0x9f,0xf3,0xf3,0x66,0x6f,0xf5,0xa6,0x17,0x80,0x64,0xd9,0x9a,0xee,0xb8,0x24,0x95,0x8c,0x6d,0xaa,0xe1,0x80,0xd9,0x5f,0xbd,0x3a,0x1c,0xff,0xbe,0x1c,0x84,0xa2,0x8f,0x63,0xe2,0x41,0xce,0x28,0x1a,0x9f,0xed,0x27,0x6c,0x89,0x33,0x87,0xdd,0x69,0x93,0x13,0x47,0xf3,0xc1,0x7b,0xe2,0x8d,0xd2,0xf6,0x13,0x7f,0x3d,0x64,0xc7,0x67,0xe7,0x75,0x57,0x6b,0x5a,0x29,0xc1,0xc1,0xc5,0xe9,0x13,0xac,0x64,0x22,0xa7,0xa4,0x56,0xe9,0x70,0x92,0x90,0x97,0x0c,0xa0,0x99,0x46,0x93,0xc6,0x60,0x65,0x0b,0x0b,0xa9,0xee,0x1d,0xd6,0x9a,0x82,0x0d,0xbe,0x27,0x6e,0xb4,0xe0,0x6c,0x36,0x25,0x0c,0x7a,0xa1,0x44,0x12,0x68,0x17,0xdd,0x9d,0xb6,0xcd,0xd9,0x16,0x54,0xd5,0xa3,0x8c,0x58,0xee,0x1a,0x3d,0x92,0x08,0xea,0x0b,0x7f,0x11,0xe5,0xaf,0xe5,0x02,0x2d,0x91,0xdc,0x9a,0xc3,0x49};
    static std::uint8_t digest4[32] = {0x04,0x77,0x0c,0x2e,0xe3,0xd7,0x9c,0xf3,0xa8,0xcd,0xcd,0x00,0x46,0x0c,0x17,0x36,0x7b,0x71,0x8a,0xbf,0x08,0x5a,0x0a,0x0f,0xdf,0x26,0x3c,0x47,0x29,0x5b,0x98,0x45};
    ctx.reset();
    ctx.do_final(digest, msg4, sizeof(msg4));
    if (std::memcmp(digest4, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg5[361]    = {0xfd,0x86,0x28,0x13,0xa3,0x79,0x90,0xb4,0x68,0x07,0xbd,0xb7,0x95,0xc5,0x57,0xb5,0x00,0xd4,0x9a,0xa3,0xef,0x80,0x86,0x8e,0x5e,0xf2,0xda,0x43,0x23,0xf7,0x17,0xd2,0xa6,0xd9,0x61,0x3b,0xc0,0x00,0xaf,0x88,0x9a,0xfd,0x85,0x32,0xe6,0x19,0x52,0xe3,0xe4,0x5a,0x9a,0x35,0xbd,0xb9,0xd1,0xa9,0xf7,0xa6,0xa1,0xd2,0xcc,0x5c,0x40,0x1d,0xb7,0xdf,0xf3,0x9b,0xe5,0xa3,0xd5,0x5a,0x50,0x95,0x68,0x2a,0x37,0x34,0x50,0x90,0x71,0x91,0x7b,0x1e,0x9f,0x7b,0x95,0x7b,0xc2,0x4e,0x33,0x1d,0x35,0x63,0x2a,0x4d,0xd5,0xa3,0x2d,0x8e,0xb9,0x1f,0x74,0x78,0xf2,0xbd,0x67,0x6c,0x30,0x4e,0xcf,0x40,0x1b,0x9f,0x54,0xae,0x98,0xf3,0x13,0xe2,0x59,0x9b,0x82,0x36,0xeb,0x95,0xeb,0x0c,0x6e,0x3b,0x48,0xb1,0x4b,0x74,0xbe,0xd1,0xaf,0xbc,0x0e,0x08,0x39,0xad,0xfa,0x2c,0xcd,0x4c,0x60,0x6a,0x2d,0x51,0x21,0xf6,0xe0,0x1a,0xec,0xfe,0x98,0x79,0xc2,0x75,0x15,0x2c,0x7c,0x4b,0x62,0x4c,0xba,0x5e,0x5d,0x7f,0x4c,0xcf,0x89,0xa8,0x2f,0x77,0x0e,0xa1,0xbe,0xc2,0x73,0xfb,0x84,0x5a,0x6a,0xbd,0x3b,0x2a,0xd1,0x9e,0xbd,0x61,0xc0,0x24,0x24,0x16,0xbd,0x3e,0xbc,0x52,0x4a,0x99,0x91,0x0a,0x4f,0xa9,0xfb,0x99,0xac,0x75,0xd1,0xa2,0xfa,0x30,0xfb,0x80,0x71,0xbf,0x71,0xdc,0xbb,0x33,0x84,0x9e,0x05,0xfc,0xae,0x5b,0x7c,0xc2,0xde,0xa2,0x52,0xd1,0x90,0x77,0xa1,0x85,0xe4,0x61,0x46,0xde,0xec,0x42,0x89,0x6c,0x3b,0x52,0x6c,0xba,0x56,0xa4,0xdb,0xfe,0xaf,0xea,0x2f,0x8e,0xf4,0xcb,0x5d,0x29,0x59,0x02,0x0d,0x04,0xab,0x5e,0x41,0x5c,0x0c,0x17,0xa3,0x10,0x00,0x2a,0x92,0x16,0x5b,0x98,0x78,0x5a,0xe7,0xb8,0x88,0x86,0xc0,0x0c,0x28,0x4a,0xfe,0x45,0x7e,0xef,0x17,0x06,0xa3,0x61,0x0f,0x48,0xe7,0xc1,0xaf,0x96,0xd5,0xf3,0xe0,0x84,0x46,0x1a,0x0e,0xff,0x8c,0x6a,0xd7,0x1d,0xb4,0x0d,0x84,0x09,0xcc,0xa6,0xc0,0xd7,0xa8,0x2a,0x07,0xc7,0x59,0x07,0x9a,0x24,0x0a,0x9c,0xce,0x69,0xa0,0x49,0x25,0x1d,0x77,0x38,0x82,0xb1,0x6a,0x28,0xaa,0x38,0x98,0xe4,0x16,0xcb,0xf0,0xb9,0x29,0x20,0x43,0xe5,0x1a,0xf0,0x07};
    static std::uint8_t digest5[32] = {0x9d,0xae,0x4a,0x5e,0xe5,0x41,0x9e,0x45,0x2e,0xdb,0xea,0x9e,0x67,0x30,0x02,0xd4,0xc2,0xab,0x18,0x8d,0x49,0xbe,0x0e,0xd0,0xda,0x23,0xe0,0x13,0x07,0x28,0x59,0x2a};
    ctx.reset();
    ctx.do_final(digest, msg5, sizeof(msg5));
    if (std::memcmp(digest5, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg6[481]    = {0x1f,0xa6,0x1e,0x36,0x69,0x1b,0xec,0xe2,0xc3,0xeb,0xc5,0x19,0x42,0x26,0x7c,0x5e,0x23,0x9c,0x63,0x30,0x22,0x76,0x2c,0xef,0x85,0xc8,0x44,0x3d,0xe7,0xc6,0x61,0x9b,0xbd,0x58,0x66,0xb1,0xf6,0x82,0x56,0x37,0xf4,0x78,0xf6,0x6a,0x6a,0xc4,0xb2,0x0a,0xe5,0x5d,0x3b,0x14,0xbd,0x78,0xc0,0x7f,0xd4,0xcc,0x1a,0x63,0xa4,0xdc,0x7b,0xce,0x65,0x14,0x51,0x49,0x62,0xdf,0x6e,0x93,0x93,0x2b,0xdc,0x4f,0x2f,0xff,0x0d,0x9b,0xc7,0x45,0xc6,0x4b,0xf3,0x32,0x37,0x36,0xa6,0x68,0xc1,0x09,0x6c,0x36,0x7e,0xed,0xc5,0x57,0x3f,0xc0,0x4c,0x05,0x94,0x18,0xf0,0x06,0xee,0xcd,0xca,0x13,0x3f,0x66,0xf2,0xd2,0x2b,0x69,0x94,0x5b,0x00,0x61,0x7c,0x20,0x5b,0x15,0xa5,0x12,0x6c,0x95,0x02,0x11,0x98,0x4e,0x61,0xc8,0x95,0x43,0x82,0x79,0x39,0x83,0x1d,0x8a,0xc2,0xd9,0xc1,0x97,0xf6,0x87,0x37,0xe2,0xb2,0xe5,0x15,0xd4,0xfc,0x8e,0xf6,0xb5,0x26,0x1a,0x83,0xe5,0x85,0xe4,0x38,0xfc,0x35,0xe2,0xfc,0x1f,0xc3,0x9a,0x8f,0xf7,0xd5,0x58,0xcf,0x57,0xda,0xc8,0x29,0xdc,0x72,0x85,0x3e,0x6f,0x45,0xbf,0x55,0xb6,0xca,0xbf,0xe7,0x71,0xfe,0x55,0x67,0x54,0xda,0x59,0x0c,0xaf,0xf8,0x67,0x23,0x06,0xa5,0x69,0x95,0x3b,0x71,0xda,0x5a,0x84,0x87,0x59,0x74,0x53,0x76,0x96,0x16,0x9a,0x54,0xcb,0x18,0xc2,0xa2,0x69,0x35,0x1d,0x64,0xf3,0x39,0x5c,0x62,0xe3,0x1a,0xee,0xe6,0xb3,0x30,0xcf,0x03,0x78,0xe9,0x62,0x90,0x54,0xcb,0x61,0x59,0x3f,0x6b,0x13,0x46,0xe5,0x66,0xf2,0x03,0xd8,0x72,0x72,0xb7,0xcf,0x41,0xc2,0x9e,0x4b,0x8a,0xca,0xe6,0xb1,0x49,0xfa,0xf2,0x8c,0xba,0x84,0xda,0xac,0x29,0x4e,0xa3,0xe5,0x6b,0xdd,0xe1,0x39,0xc9,0x2d,0xed,0xb0,0x18,0x08,0xed,0x50,0x92,0x4c,0x1e,0x2b,0x46,0x9f,0xe3,0x16,0xad,0x21,0xdb,0x51,0xb2,0xd3,0x4e,0xdd,0x66,0x75,0x83,0x66,0x17,0x66,0x31,0xec,0x9d,0x47,0x38,0x83,0x31,0xcb,0x7d,0xf4,0xee,0x39,0x16,0x61,0x7a,0xe6,0x0c,0x51,0x61,0xda,0x08,0x1b,0x02,0x74,0x97,0xfb,0x2f,0xed,0x73,0x1a,0x40,0xec,0x70,0x51,0xc7,0xc1,0xf2,0x67,0x45,0xe6,0x02,0x9b,0x2b,0x99,0x1f,0x7c,0xf3,0xc2,0xd8,0x48,0xcc,0x0a,0x51,0xa1,0x68,0x30,0x68,0x8b,0xc6,0x6a,0x00,0x06,0x14,0x14,0xfa,0xf3,0xd2,0xbd,0xa1,0x68,0x88,0x88,0x4f,0xd3,0x3e,0x3a,0xf4,0xf7,0x42,0xad,0x3e,0xb8,0x2b,0xe2,0x21,0x3f,0x6f,0x7e,0xee,0x1d,0xde,0x8a,0x5a,0xd9,0x28,0x12,0x57,0x67,0x3f,0xcd,0x77,0xe6,0x68,0xfa,0x5f,0x2d,0xa4,0x25,0x9f,0xda,0x63,0x7d,0x62,0x29,0xc7,0x6c,0xdf,0xf7,0x1a,0xe9,0x98,0xc0,0x4e,0x26,0xb9,0xe4,0xf3,0xc8,0x3b,0x47,0x1e,0x23,0x60,0x1b,0x7c,0x64,0xe7,0xdf,0xf6,0x12,0xae,0xe6,0xf2,0x1a,0xd7,0xbd,0xaa,0xf0,0xf2,0x69,0x66,0xfa,0xe1,0x1a,0xed,0x8f,0x3f,0x21,0x47,0x67,0xab,0x8c,0x7b};
    static std::uint8_t digest6[32] = {0x54,0x54,0xaf,0x4a,0xd9,0xd5,0x49,0xbd,0x16,0xb8,0xcd,0x53,0xd8,0xff,0x69,0xe9,0x1a,0x8f,0xfa,0x75,0x81,0x27,0x1f,0xb0,0xd8,0x70,0x8d,0x12,0xba,0xe3,0xc1,0x48};
    ctx.reset();
    ctx.do_final(digest, msg6, sizeof(msg6));
    if (std::memcmp(digest6, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg7[268]    = {0x27,0xed,0x1d,0xbf,0xc2,0xc4,0x31,0x4a,0x4c,0x1d,0x2f,0x1f,0x09,0xdd,0xec,0x0c,0x18,0xe1,0xbb,0x79,0xba,0xb1,0x58,0x13,0x6f,0x32,0x2c,0x2a,0xed,0xb0,0x4c,0x21,0x93,0x43,0x60,0x7d,0x87,0x86,0x47,0x02,0x52,0x53,0x03,0xc6,0xc5,0xec,0x7d,0xc4,0x03,0xcf,0xe7,0xa5,0xac,0xcb,0xc4,0x5d,0xad,0x48,0xda,0xb4,0x0f,0xdb,0xc8,0x3e,0x7a,0x89,0xa6,0x91,0x07,0x37,0x18,0xda,0x8a,0xd1,0x0c,0x48,0xbc,0xf2,0x93,0xbd,0xd4,0x9d,0xde,0x03,0x27,0x1a,0xd9,0x63,0x59,0xdb,0xd8,0xc0,0x26,0xe3,0x6d,0xfb,0xec,0x58,0xdf,0x35,0x36,0x9b,0xb0,0x42,0xeb,0x15,0x2f,0x3a,0x71,0xfb,0xe8,0x8f,0x64,0xbf,0x66,0x1a,0x54,0x14,0x9f,0xc2,0x2e,0x9e,0x30,0x9b,0x45,0x05,0xce,0x44,0x3b,0xe0,0xe5,0x3f,0x8e,0x63,0x38,0x66,0xe2,0xae,0x3e,0x19,0x7c,0x06,0x71,0xcd,0xfa,0xed,0x81,0x2d,0x07,0xe7,0xce,0x8f,0x8f,0x67,0xb4,0xea,0x52,0xc4,0x7c,0x97,0xfd,0x56,0xa8,0x5d,0x66,0x2e,0x4a,0x5d,0x3f,0x9a,0x7c,0x92,0x43,0xa2,0x9d,0x9a,0x78,0x74,0xa7,0xd1,0xde,0x62,0xec,0xb3,0x81,0xcf,0x9c,0xc4,0x14,0x26,0xb1,0x3b,0x67,0xfc,0x13,0x3a,0x32,0x99,0xb8,0x3e,0x27,0x67,0x7a,0x27,0xe6,0x67,0x1d,0x34,0xbd,0xc4,0x9b,0x29,0xd4,0x6c,0x80,0x45,0x63,0x67,0x8d,0xf3,0xa9,0x8e,0x12,0x9b,0x0a,0xa4,0x2b,0x97,0x77,0x43,0x33,0xd3,0xac,0xce,0x17,0x8e,0xbf,0xa0,0x39,0xf9,0x8a,0x3d,0xb1,0x24,0xe9,0x59,0xd8,0xb1,0x51,0x44,0x80,0x6f,0x28,0x77,0xff,0x56,0xd1,0x9f,0xe7,0xdf,0xdf,0x72,0x92,0x70,0x90,0xb4,0x9c,0xc2};
    static std::uint8_t digest7[32] = {0x3c,0x1e,0xb9,0xf8,0x52,0x32,0xe3,0xe7,0x05,0x15,0x16,0x0b,0x7a,0xbb,0xf3,0x36,0x46,0xa4,0x94,0xb3,0x29,0x25,0x4d,0xd6,0xa2,0xa5,0x9d,0x95,0x1b,0x38,0x24,0x9a};
    ctx.reset();
    ctx.do_final(digest, msg7, sizeof(msg7));
    if (std::memcmp(digest7, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg8[396]    = {0xf7,0x5b,0xcf,0xe9,0xa6,0xe9,0xeb,0x9c,0xc5,0xa5,0x93,0xf2,0x5b,0x7d,0xfe,0x54,0x5c,0xd5,0xb4,0x0d,0xee,0x30,0xcd,0x67,0x8f,0x81,0xf0,0x04,0x35,0x85,0xda,0xde,0xfb,0xd5,0xba,0xd4,0xef,0xf5,0xd8,0xcb,0xa7,0x46,0x5c,0x17,0x2b,0xcd,0x5f,0xca,0xf8,0xef,0x2e,0xbd,0x2c,0xcf,0x6a,0xf5,0x84,0x67,0x0e,0x3d,0xef,0xdc,0x20,0xc1,0x0b,0x55,0x66,0x7f,0x7d,0x42,0xe4,0xcf,0x27,0x2c,0xa3,0x0b,0x00,0x30,0xb9,0x60,0x84,0x7c,0x48,0x7d,0x34,0x96,0x37,0x49,0x95,0x33,0xf3,0x70,0xc5,0x2e,0x3e,0xac,0x77,0x2b,0x17,0x98,0x01,0x95,0xa0,0x82,0x1b,0xba,0x5e,0x40,0x15,0xf7,0xfc,0xed,0x1f,0x60,0x74,0x71,0x93,0xb5,0xaa,0x1c,0x69,0x4b,0xb9,0x8c,0xb9,0x5d,0x1f,0xcd,0xaa,0xca,0x9e,0x62,0x33,0x47,0xd5,0x0c,0xec,0x5a,0xde,0x96,0x18,0x0b,0x36,0x73,0x99,0xd0,0xba,0x16,0x5a,0xb4,0x3c,0xc0,0x2f,0x37,0xbf,0x28,0x2a,0x57,0x4e,0x84,0x80,0x77,0x00,0xd8,0x62,0x1b,0x02,0x93,0x7f,0x31,0xba,0xed,0xca,0x23,0x55,0x19,0xcb,0x31,0xa3,0x29,0xb2,0x01,0xf4,0xc3,0x9a,0x2d,0x67,0x1e,0xe2,0xb0,0x50,0xc7,0xf6,0xab,0xb8,0xf5,0x79,0xde,0xae,0x64,0x05,0xb2,0x68,0xfb,0x9b,0xe9,0x07,0xdc,0x11,0x0c,0xfa,0xe1,0x55,0x10,0xf0,0x73,0xce,0x0d,0xcc,0x5d,0xea,0x78,0xdb,0xde,0xa0,0x59,0xdb,0x5d,0xc1,0xd3,0x60,0x70,0xd8,0xee,0xf6,0xd3,0x40,0xf7,0x05,0x8f,0x72,0x7c,0x13,0x51,0x48,0xe9,0xb6,0x12,0x09,0xc3,0x1b,0xd5,0xc7,0xaa,0xc5,0x22,0x43,0x21,0x49,0x54,0x11,0x28,0xdd,0x08,0x87,0x33,0x3a,0x81,0x0e,0xd7,0xdc,0xd3,0xbd,0xeb,0x12,0x24,0x63,0x77,0x0a,0xba,0x8d,0x14,0xd6,0x65,0x63,0x21,0xf7,0xc1,0x40,0x2b,0x7f,0x02,0x46,0x2a,0xd3,0xf0,0xbc,0xf1,0x3f,0x34,0xf5,0x07,0x54,0xbe,0xbc,0xe5,0x94,0x45,0xed,0xfe,0x36,0x5c,0xc5,0xf9,0x60,0x6d,0x1e,0x4f,0x5b,0xc0,0x15,0xa8,0x2f,0xea,0x55,0xfc,0xac,0x58,0x1d,0x7d,0x46,0x32,0x96,0xf0,0x8e,0xa1,0x65,0x25,0x8d,0x4e,0xbd,0xa7,0xdf,0x34,0xb2,0x9b,0x14,0xeb,0x6b,0x31,0x01,0xe1,0xa8,0x21,0x0e,0xd4,0x01,0x8a,0x96,0xf4,0xf8,0xcb,0xea,0x92,0xab,0x89,0x7f,0x3d,0x56,0x62,0x1b,0xcc,0x9a,0xfe,0xbe,0xf3,0x3c,0x3e,0x36,0x8a,0x97,0xee,0x19,0xfe,0x24,0x76,0x6b,0xde,0x22,0x52,0x54,0xa6,0xea,0x7c,0x62,0x6b};
    static std::uint8_t digest8[32] = {0x62,0xd1,0x3a,0x5a,0x6a,0x08,0x04,0x2e,0x72,0xd8,0x0a,0xfa,0x1e,0x5d,0x65,0x27,0xea,0xf0,0x01,0x03,0x99,0x47,0xc0,0x96,0x19,0xc1,0x96,0x2f,0xd3,0xc3,0x01,0x77};
    ctx.reset();
    ctx.do_final(digest, msg8, sizeof(msg8));
    if (std::memcmp(digest8, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg9[496]    = {0x12,0xf0,0x0b,0xd0,0xa1,0x6d,0x98,0x34,0x27,0x8b,0x12,0x8e,0x96,0x78,0x67,0x70,0x83,0xb8,0x18,0x3c,0x03,0xc4,0xe4,0x47,0xbc,0xc8,0x40,0xde,0x3e,0x97,0x89,0xcd,0x4d,0xfc,0x65,0x0b,0xd7,0x52,0x8c,0xc3,0x8c,0x31,0xb7,0x41,0x41,0x5b,0x54,0xa3,0x3f,0x73,0xab,0x05,0x26,0xdb,0x1c,0xe3,0x67,0xac,0xfd,0x3e,0xf5,0x69,0xf1,0xf8,0x1d,0xe7,0x7e,0x68,0x28,0xd3,0xeb,0xf5,0x26,0x66,0x34,0xaa,0x4b,0xe6,0x30,0x6a,0x27,0x2d,0x75,0x65,0x86,0xf6,0x8e,0xc2,0x8d,0xa8,0xbf,0x3f,0xee,0xc1,0x9f,0x91,0xea,0x8b,0xcd,0x37,0x2d,0x76,0x4f,0x91,0xe7,0xdb,0xae,0xa8,0x9b,0x02,0xe2,0x8c,0xad,0x69,0x18,0x6d,0xef,0x81,0x95,0x00,0xfd,0x44,0x69,0x52,0x27,0x78,0x16,0xbb,0x5d,0x6a,0xa2,0x37,0x2e,0xa6,0x9c,0xe5,0xc2,0xe9,0x13,0xeb,0x8b,0x16,0x87,0xd1,0xf3,0x10,0x82,0xbe,0x1c,0xf3,0x69,0x1d,0xf4,0xc6,0x22,0xb7,0xf3,0x07,0xd8,0xbb,0x6a,0xa5,0x00,0x5d,0x83,0x14,0x5f,0xb4,0x5b,0x63,0xc4,0xce,0x2a,0x00,0x9f,0x53,0xd3,0x86,0xa9,0x38,0xf0,0xd1,0xec,0x34,0x52,0x02,0xd8,0xe5,0x51,0x4e,0x36,0x3b,0x38,0x8b,0xfb,0xf8,0x96,0xde,0x83,0xd3,0x93,0x4b,0x77,0x73,0x79,0xb4,0x76,0x19,0x36,0x40,0xfb,0x84,0x04,0x21,0x4c,0xe6,0xec,0x42,0xfa,0x17,0x15,0x07,0x99,0x73,0xbf,0x7f,0x1d,0x3b,0x69,0x01,0x40,0xa9,0x47,0x4f,0xbb,0x31,0xfa,0x41,0x8f,0xe7,0xa9,0xa1,0xae,0x95,0x15,0xfb,0x32,0xa1,0x0d,0x43,0xec,0xd9,0x7a,0x2c,0x45,0x3a,0xe8,0x46,0x98,0xdb,0x05,0xa6,0x72,0x59,0x00,0x0f,0x7e,0x03,0xfe,0x17,0xb0,0xb7,0xc2,0xa7,0xcb,0x78,0x5c,0xf7,0xba,0x4e,0xdb,0x45,0x31,0x2e,0x12,0x6e,0x60,0x8f,0x2c,0xa6,0xf2,0xb2,0x3f,0x10,0x03,0x52,0x3a,0x43,0x41,0x3b,0x4b,0xfe,0xc6,0xab,0x9b,0xf3,0xfd,0xe3,0x9d,0x59,0x65,0x4e,0x4b,0x05,0xb4,0xba,0x66,0xf0,0x29,0xc5,0x27,0x51,0xfb,0x54,0x3c,0x18,0xb3,0x1e,0xd3,0x0c,0x49,0x5b,0xc8,0x46,0x5e,0x96,0x77,0xc0,0xf2,0x62,0x29,0x14,0xfc,0x89,0x55,0x03,0x37,0x27,0x33,0xd6,0x15,0xa6,0x7a,0x98,0xfc,0xb6,0x9d,0xc5,0x7f,0x8f,0xe0,0xdd,0xec,0x09,0xf7,0x0c,0x89,0xaf,0x91,0xb1,0xcb,0xae,0x5b,0x7d,0xda,0x4c,0x3f,0x14,0x99,0x00,0x5c,0x6a,0x58,0x0c,0xb5,0x2a,0x69,0x27,0x47,0x54,0xbf,0x1c,0xb3,0x79,0x94,0x96,0x13,0xd0,0x00,0xf9,0x96,0xec,0xf0,0x96,0x71,0x20,0x60,0xc7,0x35,0x3b,0x24,0xda,0x4b,0xa5,0x08,0x39,0x02,0xcc,0xa3,0x72,0x70,0xad,0x06,0x55,0xda,0x4c,0xbc,0x45,0x99,0x7f,0xd4,0x3d,0x69,0x20,0xe3,0x04,0xa2,0xcb,0x31,0xcd,0xe4,0xcb,0x44,0x25,0x53,0x4f,0xb3,0x97,0x33,0xa9,0xd1,0xf2,0x25,0xdc,0xa2,0xa9,0x49,0xc8,0x8c,0xb4,0xef,0x28,0x10,0x9f,0x41,0x8a,0xd3,0x08,0xda,0x57,0xd9,0xa0,0xc5,0x84,0x30,0x1b,0xaa,0x52,0x73,0x93,0xf1,0x46,0xb9,0x89,0x9c,0xc3,0xa1,0x2c,0x3f,0x56,0x62,0x48,0xad,0x64,0x2b,0xfd};
    static std::uint8_t digest9[32] = {0x8c,0x36,0xf4,0x2a,0x52,0x12,0xa0,0x83,0x25,0x0d,0x80,0x41,0x89,0x19,0xb1,0xab,0x3e,0xbc,0x2b,0x3e,0x51,0x18,0x6c,0x0c,0x07,0x04,0x44,0x18,0xf9,0x76,0x7e,0xde};
    ctx.reset();
    ctx.do_final(digest, msg9, sizeof(msg9));
    if (std::memcmp(digest9, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg10[59]    = {0x81,0x51,0x5d,0xf0,0xed,0x45,0xd1,0xf6,0xea,0x12,0xbe,0x28,0x84,0xe0,0xc1,0x5c,0x4d,0x35,0x50,0x5d,0xa3,0x56,0xb5,0xf4,0x62,0x0c,0xc4,0x41,0xe2,0xd2,0xc1,0xe0,0x00,0xc2,0x39,0x55,0xed,0x67,0x3b,0x21,0x4f,0x24,0x1e,0xdd,0xf8,0xed,0x6d,0xc8,0xdd,0x1a,0x34,0xd3,0xef,0xa6,0x00,0x24,0x9a,0x56,0xc2};
    static std::uint8_t digest10[32] = {0x6e,0x99,0x33,0x19,0x22,0x51,0xc3,0x35,0xc6,0x61,0xe2,0xb2,0x43,0x2b,0x43,0x00,0xb1,0x92,0x22,0x67,0x13,0x15,0xff,0x35,0x8c,0xa6,0x90,0x4e,0xe2,0x06,0x5d,0x45};
    ctx.reset();
    ctx.do_final(digest, msg10, sizeof(msg10));
    if (std::memcmp(digest10, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg11[51]    = {0x9a,0x61,0x9f,0x80,0x8d,0x61,0x0a,0xd6,0x2b,0x97,0xb1,0x0f,0xed,0xe8,0x55,0x0c,0x7b,0x4a,0x8e,0x7e,0x73,0x1d,0x43,0xe5,0x8c,0xc6,0xa0,0xd5,0x66,0xc0,0xe3,0xd4,0x7a,0xe7,0xea,0x91,0x0c,0xcd,0xc6,0x89,0xf7,0x48,0x65,0x48,0x9d,0x50,0x3b,0x16,0xf4,0x03,0xda};
    static std::uint8_t digest11[32] = {0xa2,0xdb,0x92,0x36,0x62,0xc3,0x2d,0x7d,0x60,0x1c,0x3c,0xc1,0xd8,0x5c,0xe0,0xf2,0x66,0x30,0xa5,0xd1,0x04,0x7b,0xdc,0x27,0x15,0xb1,0x19,0xb8,0x51,0x4d,0x42,0xfd};
    ctx.reset();
    ctx.do_final(digest, msg11, sizeof(msg11));
    if (std::memcmp(digest11, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg12[313]    = {0x1a,0x01,0x26,0x3b,0xf7,0x7c,0xd4,0x36,0x7a,0xff,0xb0,0xf5,0x62,0xea,0x9e,0xf8,0xc3,0xf7,0xba,0xe5,0x46,0x3f,0x08,0x08,0x9d,0xe0,0x0a,0xcd,0x0d,0x4c,0x52,0x26,0xac,0x6b,0x3e,0xd9,0x39,0x7f,0x8e,0x31,0xfd,0x12,0x22,0x1c,0x7e,0x7c,0x91,0xc7,0x55,0x0d,0xef,0x66,0x7f,0x05,0xdf,0xbf,0x3a,0x29,0x0b,0x15,0xdd,0xd3,0x73,0xb8,0xa1,0x10,0x28,0xfc,0xfc,0x7b,0x0d,0xbc,0x43,0x09,0xd8,0xba,0x1e,0x16,0x55,0x3e,0xb8,0xf6,0x36,0xbf,0x86,0x3f,0x7b,0xdf,0x46,0xa0,0xdc,0x08,0x69,0x3b,0x54,0x5b,0x6f,0xb6,0xe7,0x5d,0x92,0x56,0x50,0x54,0x0f,0x38,0x48,0x71,0xdf,0x1c,0xc9,0x11,0x1c,0x2a,0xb4,0x90,0x8d,0x96,0x59,0xfd,0xf2,0x70,0xa3,0x22,0x7b,0x40,0x45,0x1b,0x33,0xb7,0x38,0xee,0xe2,0xd9,0x1e,0x59,0x56,0x20,0x7b,0x36,0x7c,0xc2,0xc3,0x30,0x7b,0x1d,0x27,0xc2,0x31,0x02,0x90,0xd3,0xe2,0xf6,0x84,0xbb,0x7a,0xd4,0xc8,0x75,0x22,0x47,0x52,0x67,0x44,0x7c,0x4c,0x19,0xbb,0x57,0xf3,0x2c,0x95,0x68,0x38,0x79,0xc6,0x7f,0xbd,0xe4,0xfa,0x74,0xcb,0xab,0x5e,0x7b,0x1f,0xcb,0x17,0xb2,0x27,0x63,0xd5,0xe2,0x5b,0x4c,0xa3,0xde,0x35,0x22,0xb0,0xa5,0x07,0x3e,0x8a,0x48,0x3f,0x31,0xcb,0x47,0x95,0xe9,0x80,0xcd,0x1a,0xac,0x5a,0x5d,0x21,0x86,0xe0,0x09,0x7f,0x53,0x7d,0x05,0x8d,0xd9,0xc4,0x4b,0x63,0x17,0xc7,0x52,0x24,0x54,0x9a,0xa4,0xd8,0x0f,0x47,0x07,0x03,0x2a,0xb7,0xcf,0xe5,0xcb,0x41,0x2b,0xf4,0xc7,0x4e,0xb6,0x72,0x0c,0xf9,0x6f,0x01,0x31,0x9b,0x25,0x0a,0xcb,0x18,0x97,0x61,0x5d,0xaf,0x38,0x88,0x23,0x38,0x82,0x44,0x94,0x62,0x6d,0x5e,0xee,0x43,0x41,0x94,0x4d,0x49,0xd5,0x53,0xce,0xd8,0x0f,0xfb,0x39,0x9e,0x44,0xc2,0x62,0x1c,0xb2,0xbd,0x76,0xb1,0xe8,0x97,0x4f,0xbb,0xe8,0x3a,0xed,0xab,0x5f,0x94,0x3a,0xa0};
    static std::uint8_t digest12[32] = {0x49,0xf8,0xd2,0xf8,0x16,0x0c,0x8a,0x41,0x3e,0xdc,0xda,0xcf,0x5c,0xad,0x7a,0x0f,0x35,0xbd,0x24,0x14,0xdb,0xf7,0x6f,0x9b,0xa0,0xc2,0x45,0x2e,0x35,0x17,0xe5,0x5b};
    ctx.reset();
    ctx.do_final(digest, msg12, sizeof(msg12));
    if (std::memcmp(digest12, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg13[256]    = {0x8e,0x31,0x59,0x2f,0x3f,0x97,0x47,0x18,0x2c,0x3f,0x56,0x35,0x51,0xb1,0x30,0x85,0xe4,0xaa,0x30,0xbc,0x95,0xdc,0xea,0x78,0x92,0x2e,0xfc,0x44,0x4a,0x81,0x00,0x5c,0x5d,0xf5,0x4a,0xdc,0xcc,0xd8,0xb4,0x1d,0x82,0xeb,0x3d,0xf2,0x46,0xec,0xf4,0x08,0xdd,0x20,0xa6,0x6e,0xa0,0x22,0xf1,0x80,0x1a,0x96,0xb9,0xf1,0x60,0xa4,0x2a,0x96,0x61,0xcb,0xcd,0x01,0x99,0x9a,0x18,0x3e,0xcc,0x32,0xa7,0xa9,0xb2,0x9e,0xb4,0x4a,0xa7,0x9f,0x74,0x22,0x67,0xc5,0x40,0xab,0x24,0xac,0x20,0xe9,0xb5,0x1b,0x16,0xdc,0x90,0x3b,0xe9,0x51,0x67,0xe4,0xe1,0x71,0x6a,0x4b,0x78,0x9a,0x37,0x98,0xa4,0x17,0x88,0x9f,0xf0,0x62,0x40,0x9a,0x0d,0x02,0xdd,0x52,0x93,0xc7,0x23,0xdf,0x73,0x12,0xb0,0x41,0x54,0x9b,0x10,0x87,0xf4,0xbb,0xf9,0x57,0xda,0x22,0xad,0xfb,0x92,0x1e,0x63,0xde,0xb9,0xf8,0xc3,0xa6,0xc6,0xbd,0x39,0x46,0x69,0xdc,0x19,0x87,0x09,0x5f,0x30,0x50,0x5a,0xeb,0x3c,0x43,0xab,0x48,0xe8,0x9d,0xd4,0xc9,0xb6,0xdd,0x09,0x44,0x07,0x9d,0x88,0xed,0x3f,0x7c,0xf5,0x0a,0x33,0x77,0x6a,0xe0,0xad,0xb7,0xc9,0x98,0x28,0xc9,0x59,0x51,0x83,0x80,0x4a,0xf4,0xdc,0xd7,0x68,0x1b,0x5e,0x5b,0x2b,0x1c,0x32,0x98,0x06,0xaa,0x3a,0x26,0x15,0x60,0x9e,0x62,0xe1,0xf7,0x08,0x03,0xff,0xb1,0x57,0x49,0x19,0xe4,0xb8,0x7c,0xf5,0xa7,0x4f,0x5d,0xe3,0xbd,0x62,0xf3,0xec,0xf8,0xb2,0xd4,0x31,0xa6,0xf1,0x7b,0x18,0xe1,0x7a,0xfb,0x2a,0x1c,0x20,0xd4,0x2a,0xad};
    static std::uint8_t digest13[32] = {0xae,0x00,0x75,0xc7,0x22,0x46,0x71,0xba,0x75,0xd5,0x18,0x7d,0x2d,0x98,0x9d,0xce,0x65,0x70,0x16,0x49,0x72,0xe1,0x1c,0x7e,0x6f,0x59,0x8c,0x41,0xe6,0x83,0x97,0x89};
    ctx.reset();
    ctx.do_final(digest, msg13, sizeof(msg13));
    if (std::memcmp(digest13, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg14[42]    = {0x40,0xc7,0x7f,0x54,0x74,0xd9,0x8f,0x94,0xda,0xe0,0x99,0xe4,0x4e,0xb1,0xfe,0x6d,0x1c,0x8a,0x9e,0xf3,0x20,0x51,0x67,0x98,0x8c,0x18,0xcd,0xd5,0x29,0x13,0xf0,0xdc,0x7e,0x1a,0xe8,0x29,0x36,0x23,0x62,0x09,0x16,0x7a};
    static std::uint8_t digest14[32] = {0x10,0xca,0x57,0x3d,0xd9,0xf8,0xfc,0xec,0x88,0xfb,0x43,0x42,0x96,0x8d,0x72,0x25,0x46,0x71,0xcf,0xd8,0x79,0xb8,0xc9,0xc9,0x6a,0xee,0xf9,0xff,0xe9,0x1d,0xb1,0x2b};
    ctx.reset();
    ctx.do_final(digest, msg14, sizeof(msg14));
    if (std::memcmp(digest14, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg15[287]    = {0x6b,0x94,0xa4,0x08,0x0b,0x19,0x53,0x45,0x12,0x92,0xe9,0xd2,0x69,0x73,0xca,0x18,0x93,0xbe,0xee,0xc8,0xa3,0x48,0x5e,0x53,0x18,0x99,0xf0,0x48,0xb6,0x81,0xa0,0xd1,0x47,0x11,0x5a,0x82,0x88,0x9b,0x0e,0x68,0x17,0x2e,0x37,0xb2,0xe3,0x6c,0x55,0x59,0x80,0x87,0xd3,0x96,0xbe,0xca,0xd6,0x25,0xf7,0x14,0x16,0xe8,0x53,0x06,0xf2,0xae,0xe2,0xdd,0xb0,0xdd,0x42,0xb5,0xe9,0xcc,0x52,0xf0,0x27,0xaf,0x68,0xf7,0x79,0x0a,0xfd,0x17,0xb5,0x4c,0x39,0x32,0x92,0x30,0x9c,0xa1,0x1a,0x4b,0xc3,0x57,0xa1,0xfd,0x10,0x49,0xe1,0x0c,0x4d,0xeb,0x61,0x41,0x3e,0x66,0xb2,0xc8,0xf1,0xa4,0x28,0x95,0x2b,0x04,0xa4,0x7f,0xf4,0x75,0x90,0x9f,0x66,0xc3,0xfd,0x22,0x01,0xec,0x94,0x90,0xa7,0xc7,0xd8,0x94,0x3f,0x6e,0x42,0xc2,0x09,0x91,0xc0,0xd8,0x7d,0xfe,0xcd,0x27,0x7b,0x95,0xcc,0xdb,0x5e,0x03,0xf3,0xea,0xe0,0x64,0xba,0x0e,0x65,0xf1,0x96,0x92,0x29,0x9d,0x55,0x6b,0x3f,0x2f,0xa7,0xa8,0x2a,0xf7,0xde,0xdd,0xb6,0xa4,0x6c,0xbf,0x72,0x47,0x99,0x51,0x9b,0x90,0xad,0x0d,0x53,0xfa,0x06,0xd4,0x9f,0xf1,0xa6,0x2c,0xcb,0x03,0x77,0xe9,0x7b,0xe4,0xa4,0xe1,0x7d,0x10,0x63,0x99,0x78,0x9b,0xd6,0xec,0x6a,0x34,0x92,0xae,0xbe,0xab,0x99,0xa4,0x07,0x5c,0xf8,0xff,0x8b,0x7f,0x99,0x17,0x36,0x38,0xc4,0xc4,0x67,0x3a,0xa1,0x3d,0x60,0x8f,0x03,0xe2,0x2d,0xce,0x49,0x42,0x4a,0x8e,0xd1,0x47,0xf4,0xf9,0xd1,0xb7,0x15,0x73,0x33,0x7d,0xea,0x1a,0xe6,0xf7,0x7a,0x18,0x30,0x94,0xeb,0x5a,0xad,0xee,0xb2,0xd7,0xaf,0x96,0x52,0xc8,0x4a,0x34,0xdf,0x0c,0x47,0x8d,0x1f,0x76,0x79,0x3f,0x14,0x76,0xbe,0x0e,0x56,0x67,0xee};
    static std::uint8_t digest15[32] = {0x70,0x55,0x7a,0xe8,0x37,0x04,0x89,0xd8,0x49,0xa6,0xd9,0x52,0xf0,0x02,0x21,0x3e,0x56,0x1f,0x73,0x6a,0x56,0xfa,0xf4,0x2f,0x94,0xd8,0x58,0x8a,0x3c,0x28,0x5f,0x3e};
    ctx.reset();
    ctx.do_final(digest, msg15, sizeof(msg15));
    if (std::memcmp(digest15, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg16[398]    = {0x40,0xcc,0xbc,0xf4,0xea,0x01,0x7a,0x0d,0x7d,0x3b,0xb9,0x39,0x74,0xbd,0xbd,0xe2,0x06,0xc6,0xb2,0x84,0xf9,0x1c,0x48,0x4f,0x59,0x7b,0x84,0x5d,0x8d,0x23,0x86,0x84,0x5c,0x94,0x28,0x68,0x6f,0xaa,0xdb,0xee,0xb3,0x57,0xc7,0xe6,0xe5,0xfd,0x49,0x30,0x12,0xc1,0xc3,0xc9,0xf5,0xc0,0x0d,0x52,0xec,0xf9,0x81,0xea,0x26,0x5a,0x1a,0xf0,0xe0,0xd9,0x03,0x02,0x13,0xe7,0x40,0x6c,0x4e,0x74,0x42,0x66,0x34,0x41,0xac,0xc4,0xcd,0x7c,0x44,0x53,0xc8,0x38,0x48,0x1a,0x1a,0x38,0xea,0xdb,0x06,0x14,0x0f,0xf4,0x8d,0xf8,0xc1,0x06,0x85,0x23,0x83,0x8a,0x74,0x0c,0x81,0xd1,0x20,0x02,0x19,0xd2,0x09,0x69,0x0b,0x74,0xe4,0x9b,0x2c,0x83,0x0b,0xc0,0x37,0x29,0x1b,0xd7,0x64,0x60,0x21,0xf6,0xfb,0x92,0xaa,0x97,0xb0,0xb5,0xdc,0x9d,0x0b,0xbb,0xb9,0x10,0x5e,0x6b,0x03,0x72,0xce,0x2a,0xbf,0x30,0xf7,0xda,0x11,0xbd,0xfd,0x41,0x7c,0x01,0x65,0x82,0x50,0x82,0x6d,0x33,0x92,0x05,0xef,0x03,0xc2,0x14,0xb5,0xe9,0xf1,0xf2,0xc6,0x19,0xa0,0x35,0x16,0xe8,0x19,0xf0,0x1f,0xa7,0xef,0x38,0x6e,0x76,0x88,0x99,0x56,0xdb,0x48,0x2d,0xd1,0xc9,0x1c,0xae,0x11,0xb0,0x0b,0x75,0x09,0x41,0x43,0x8d,0xc7,0x54,0xba,0x9f,0x3e,0xcb,0xcb,0xe9,0x24,0xa7,0x7d,0xe1,0x50,0x05,0x6d,0x96,0x7e,0xb5,0xa8,0x0f,0xc2,0x8d,0x17,0x11,0xf5,0x71,0xba,0xca,0xf6,0x01,0xe9,0xe6,0xe6,0x76,0xbf,0x68,0x03,0xbe,0xda,0x5d,0xc7,0xe3,0x71,0x1d,0xd9,0x3e,0xbd,0x37,0x0c,0x41,0x89,0x55,0x01,0xe3,0x0c,0xdb,0x5a,0x69,0xcb,0x23,0x6f,0x74,0x49,0xf5,0x55,0x39,0x43,0xdd,0x47,0x97,0xc2,0x76,0x63,0x04,0x9b,0xdf,0x37,0x09,0xa3,0xd7,0x13,0x40,0x38,0x74,0xdc,0x49,0xef,0x45,0x5f,0x45,0xd1,0x21,0x66,0x35,0xc2,0x26,0x15,0x92,0xe5,0x3a,0x1d,0xa5,0x2b,0xf7,0xf2,0x73,0xea,0xdd,0xcc,0x61,0x40,0x64,0x85,0x66,0xce,0x7c,0x79,0x81,0x61,0x9c,0xdd,0x49,0x15,0xcc,0x24,0x6c,0x1f,0x1c,0x96,0xf2,0x7e,0x9e,0x12,0x3c,0x7b,0xa7,0x12,0xf4,0x55,0xb1,0xfc,0x9e,0xe4,0x1f,0x79,0xbe,0x39,0xe7,0xa1,0x05,0xda,0xbf,0xb0,0x4f,0x0c,0x85,0x99,0x28,0xb5,0x4d,0x71,0x49,0x5b,0x3e,0x66,0x12,0x21,0xef,0x44,0x2c,0x33,0xb0,0xe4,0x97,0xbf,0xd9,0x88,0xf7,0x94,0x05,0x78,0x50,0xcc,0xca,0xad,0xd7,0x41,0x4d,0x7f,0xb0,0x98,0x21};
    static std::uint8_t digest16[32] = {0x80,0xa5,0x0d,0x24,0x00,0x60,0xbf,0x56,0xf6,0x2d,0xbe,0x25,0xb2,0x5e,0x75,0x52,0x5e,0x28,0x5c,0x4d,0x4f,0x73,0x6c,0xb0,0x0f,0xfb,0x45,0x8a,0x67,0x3b,0x36,0x97};
    ctx.reset();
    ctx.do_final(digest, msg16, sizeof(msg16));
    if (std::memcmp(digest16, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg17[175]    = {0x0f,0x9a,0x92,0x52,0x6e,0x0a,0x58,0x62,0xfb,0x18,0xcb,0xca,0x11,0x36,0x4b,0xa8,0x06,0x26,0x27,0x5b,0x14,0x8a,0xcd,0xf9,0x1c,0xc0,0x29,0xd3,0x29,0x1a,0x1a,0x48,0x0b,0x39,0x2b,0x0a,0x42,0xbe,0xe9,0x08,0x87,0x13,0x56,0x07,0xa5,0xcb,0x86,0x13,0xa7,0x81,0x0e,0x8c,0x58,0x1f,0xdc,0xcd,0x2d,0x4f,0xa7,0x1d,0x7f,0x2c,0x78,0x96,0x6f,0x93,0xd0,0x00,0x14,0xf6,0x8a,0x3c,0x2d,0xa1,0xe8,0x19,0x23,0x3c,0xb7,0xd7,0x09,0xbb,0xfa,0x50,0xc8,0x29,0x91,0x62,0x19,0x17,0x7e,0xda,0x4a,0x27,0x5d,0xdd,0xb3,0xf1,0xb7,0x8b,0x3a,0x80,0xad,0xd9,0x89,0xe8,0x21,0x6d,0xe8,0xcd,0x24,0xae,0x74,0x74,0x6c,0x47,0x6e,0xa7,0x09,0x73,0x37,0x6d,0x21,0x2f,0x8f,0xcb,0x89,0x7d,0x1b,0x51,0xb1,0x5e,0xd9,0x16,0x09,0x36,0x97,0x20,0x85,0xc6,0x64,0xcb,0x68,0x29,0xfc,0xf5,0x1b,0xf5,0xa5,0x2c,0xe8,0x56,0xbb,0x6b,0x10,0xef,0x23,0x7a,0xfc,0x5f,0xd9,0x31,0x58,0x1d,0x1e,0x5c,0x4a,0x14,0x63,0x26,0xe6,0xa6,0xb5,0x13,0xe3};
    static std::uint8_t digest17[32] = {0x7d,0x67,0x86,0x69,0xc7,0x04,0x7d,0x83,0x75,0x5d,0x5d,0xf5,0x6e,0xa8,0x4a,0xa2,0x77,0x55,0x26,0x4a,0x77,0xf6,0x5e,0x58,0x64,0xeb,0x02,0x4b,0xd7,0xe4,0x80,0x57};
    ctx.reset();
    ctx.do_final(digest, msg17, sizeof(msg17));
    if (std::memcmp(digest17, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg18[335]    = {0xf1,0xa8,0x34,0x97,0x88,0x11,0x7d,0x66,0xf7,0xd9,0xc3,0x07,0x83,0x5b,0x80,0xd7,0x2d,0xbe,0x25,0x82,0xd3,0xeb,0x98,0x0d,0x42,0x82,0xf5,0x1f,0x83,0x3f,0x14,0x14,0x54,0xaa,0x66,0x88,0xde,0xc0,0x0f,0xba,0x0d,0xde,0xc5,0x13,0x12,0x38,0x99,0xfd,0xf3,0x15,0xa3,0xd1,0xa7,0xb0,0x6b,0x2d,0x00,0x6f,0x39,0xa0,0xbc,0xb6,0x85,0xca,0x54,0x32,0x7f,0xbf,0xb2,0x95,0x06,0x2d,0x61,0xf7,0x34,0x01,0xec,0x34,0x44,0x6f,0x79,0xdb,0x0a,0x1c,0x67,0x1b,0x85,0x4f,0xda,0x22,0x66,0x62,0x5e,0xc3,0x31,0x09,0x9c,0x93,0x0a,0xed,0xeb,0x56,0x73,0xe9,0x21,0x68,0x60,0x2c,0xe7,0x31,0xea,0xca,0x55,0x21,0x76,0x8c,0x3f,0x85,0x14,0x1c,0x12,0x12,0x70,0x8c,0xd6,0x4e,0x06,0x91,0xcd,0x83,0xcd,0x6f,0x15,0x8d,0x78,0x7d,0x59,0x26,0x73,0x95,0xef,0xb4,0x64,0xca,0x24,0x72,0x68,0x34,0x8c,0x17,0xaa,0x5c,0x46,0x79,0x86,0x40,0x45,0x95,0x13,0xde,0x69,0xc4,0xaa,0x5c,0xe8,0xa4,0xcc,0x13,0xdf,0x7c,0x3e,0x22,0x67,0x54,0xdf,0x07,0x1f,0x44,0x62,0x1c,0x1f,0xf2,0x25,0x6b,0x0c,0x2c,0xd7,0x50,0xb4,0x24,0x7a,0xb2,0xa7,0x3e,0x16,0x82,0xcc,0x9c,0xc3,0xc1,0xe6,0x45,0x22,0x48,0x2b,0x97,0xad,0x60,0x42,0x6a,0xa4,0xf9,0xa8,0xc9,0x94,0xe4,0x5b,0xab,0x83,0xeb,0xa5,0x48,0xa1,0x20,0xa4,0x33,0x7c,0x1f,0xee,0xa6,0x6f,0x7d,0x01,0x6c,0xb4,0xa2,0x97,0x23,0x62,0x9e,0xf5,0x5d,0x3e,0x10,0xc8,0x22,0x33,0xf4,0x17,0x5b,0xfc,0x62,0xb3,0xee,0xa9,0x1d,0x54,0xe4,0x77,0xed,0xc9,0x3d,0xf5,0xc6,0x65,0x42,0x87,0xa1,0xbd,0x75,0x02,0x1d,0x1d,0xe2,0x95,0xd9,0xeb,0xd8,0x8e,0x03,0x0f,0xfb,0xc0,0x75,0xd6,0x94,0x16,0x4e,0x22,0x79,0xe7,0x63,0x8c,0xc4,0xcd,0x60,0x14,0x5c,0x1b,0x73,0xe7,0xe2,0xc3,0x82,0x34,0xf2,0x56,0x6d,0x04,0xb3,0x78,0x70,0x41,0x02,0xfa,0xb9,0x98,0x87,0x62,0x5c,0x83,0xdb,0x9a,0x8f,0x62,0x68,0x69,0x48,0x8e,0xa2,0x4c,0xa9,0x83,0x09,0xd7};
    static std::uint8_t digest18[32] = {0xe5,0xf6,0xcf,0x55,0x86,0xb4,0x9a,0x69,0x9e,0x1d,0x91,0xb6,0x71,0x3e,0x61,0x3d,0xc1,0xf3,0xff,0xc3,0x69,0x1f,0xba,0xeb,0x22,0x55,0x75,0xfd,0xf9,0xe8,0x13,0xd4};
    ctx.reset();
    ctx.do_final(digest, msg18, sizeof(msg18));
    if (std::memcmp(digest18, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg19[370]    = {0x18,0x6c,0x89,0x77,0x35,0x7e,0xc1,0xad,0x1c,0x2a,0x14,0x7a,0x2d,0x32,0xa1,0x18,0x46,0xe9,0xe9,0x44,0xc5,0x9a,0x05,0xd3,0x8e,0x46,0x8f,0x72,0xb3,0x88,0xec,0x16,0x1f,0xda,0xc5,0xb1,0x36,0x95,0x6c,0x05,0xf0,0x0c,0x99,0x1e,0x9e,0x58,0xe8,0xc9,0xd1,0xf7,0x18,0x68,0xda,0x9d,0x92,0xfb,0x87,0x38,0xed,0x2c,0x71,0xa6,0xcd,0x71,0x9d,0xe7,0xb3,0x77,0x9d,0x26,0xc5,0x46,0x43,0x81,0x3e,0x7d,0xf4,0x3a,0x03,0x92,0xf3,0x31,0xe0,0x9c,0x45,0x2d,0x15,0x14,0x70,0xda,0x65,0x70,0x39,0xe4,0xc7,0x3a,0xc7,0xad,0xea,0x47,0x91,0x7e,0x24,0x74,0xbc,0xd0,0xb0,0x23,0x65,0x57,0x7e,0x42,0x21,0x38,0x2a,0xe6,0xce,0x67,0x21,0x85,0xc2,0x8e,0xc2,0x51,0xdf,0x80,0x1d,0x7e,0x20,0x66,0xda,0x89,0x4f,0x22,0x09,0x9b,0xdf,0x0f,0xcf,0x50,0xdd,0x0b,0xdc,0x2f,0x4a,0x2f,0x5b,0x03,0x8d,0x5a,0x47,0x98,0x34,0xb8,0xb8,0x52,0x14,0x8c,0x37,0x14,0xbf,0x6e,0x44,0x42,0x0c,0xf3,0xc4,0xe0,0xdd,0x90,0x96,0xbd,0xbb,0x43,0x07,0x38,0xd7,0x2c,0xa5,0x1e,0x5c,0xc1,0x49,0x9f,0x84,0xdb,0x3e,0x58,0xe3,0x21,0xd5,0x6f,0xa6,0xbd,0xdb,0xe7,0x2b,0x24,0xc9,0xa4,0x4c,0xad,0xa0,0x71,0x4c,0x3a,0xab,0x31,0x2e,0x34,0xe1,0xed,0x72,0x21,0x3d,0xc0,0x11,0x17,0xee,0x02,0x46,0xe8,0x00,0xe9,0x49,0x5a,0x03,0x15,0x8e,0xbb,0x00,0xb9,0xd8,0xf0,0x65,0xdc,0xf2,0xf0,0x37,0x44,0x27,0x96,0xce,0x6a,0xed,0x6d,0xc5,0x7b,0xb9,0x5f,0x31,0x5c,0xc3,0xc8,0x8a,0x90,0xe1,0xc5,0x93,0xdb,0x92,0x86,0x89,0x5d,0x61,0x84,0xfe,0x41,0xa6,0x0a,0x7c,0x20,0x05,0xd3,0x3e,0x22,0xb4,0x72,0x2f,0xb6,0xe5,0xeb,0x2a,0xa6,0xa6,0x52,0xef,0x4d,0xf6,0x31,0xe1,0xf7,0xf5,0x50,0x41,0xc3,0x93,0x91,0x1e,0x09,0x78,0xab,0x21,0xa4,0xae,0xd4,0x2b,0x86,0x78,0xc2,0x11,0x45,0xcb,0x28,0x23,0x62,0xa2,0x2b,0xf2,0x21,0x21,0x45,0x90,0x1d,0x48,0x93,0xbb,0x67,0x7e,0xb3,0xed,0x06,0x31,0x2b,0x56,0xe5,0x92,0x86,0x04,0xeb,0x32,0x4a,0x90,0x0f,0xe1,0x0e,0xb6,0x2b,0xe0,0x19,0x64,0x43,0x31,0x28,0xab,0xba,0x97,0xa5,0x2e,0x29,0x95,0x16,0xd3,0x6e,0x55,0x25,0x93,0x28,0x38,0x6f};
    static std::uint8_t digest19[32] = {0x03,0xf2,0x0c,0xa1,0x3a,0xab,0xd6,0xc0,0x0d,0x59,0xcf,0x63,0x00,0x00,0x7d,0x4f,0xcc,0xf2,0x1e,0x7d,0x57,0x6d,0xe4,0xd2,0x0f,0xad,0xa2,0x02,0x2b,0xa7,0xba,0xcc};
    ctx.reset();
    ctx.do_final(digest, msg19, sizeof(msg19));
    if (std::memcmp(digest19, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg20[307]    = {0xff,0x3b,0x24,0xe3,0x64,0x11,0x58,0x15,0x90,0x71,0x00,0xd7,0x89,0xb0,0xa7,0x61,0xdf,0x40,0x51,0x9a,0x55,0x6f,0x60,0x16,0xec,0x70,0xd7,0xd1,0x27,0xaf,0xc3,0xff,0x9c,0xa4,0xb2,0xc7,0xfa,0xb7,0x8c,0x88,0xe0,0xd8,0xd1,0x66,0x5b,0xe1,0x2b,0xad,0x64,0xec,0x68,0x5a,0xed,0xd3,0x4e,0xa4,0x08,0xc5,0xdb,0x7f,0xf6,0xda,0x0e,0x5e,0x67,0x55,0xfd,0xa5,0xbf,0xda,0x4f,0xe4,0xa5,0x73,0x85,0x3d,0x5a,0xff,0xf4,0x01,0x6c,0x9a,0x20,0x23,0xf7,0x9d,0xd4,0xfe,0x4c,0x62,0x6d,0xd0,0x01,0xb7,0xa0,0x91,0xdd,0xe2,0xc1,0x6a,0xfc,0x0d,0x3e,0x0f,0xca,0x7a,0x6a,0x39,0x6e,0xe7,0x1b,0xc0,0x7f,0x9a,0xee,0x3b,0x89,0xd6,0x47,0xd0,0xdd,0x32,0xbd,0xe1,0x78,0xb9,0x9f,0xcb,0x00,0x81,0xed,0x60,0xa4,0xd7,0x2c,0xf1,0x45,0x61,0xa7,0x60,0xbf,0xa1,0xc1,0x68,0xf1,0x0b,0x16,0x9c,0xa6,0xc1,0xd5,0xce,0x74,0x55,0xfa,0x6a,0xf2,0xe5,0xca,0x08,0x32,0x13,0xcd,0x72,0x65,0xa5,0xbe,0x7f,0xa6,0xdb,0x61,0x0e,0x7a,0xe0,0x41,0xa8,0xbd,0xef,0x7e,0x7d,0x59,0x99,0x74,0xe9,0x14,0x24,0xb7,0x3c,0xfd,0x66,0x86,0x66,0x73,0x95,0xde,0x59,0x1b,0xac,0xe7,0xc1,0x27,0xf8,0xb7,0x9b,0xfb,0x2e,0xb8,0xd3,0x6a,0x2b,0x7a,0x5b,0x20,0xad,0xfa,0x70,0xf9,0x66,0xe2,0xa3,0x8f,0xa2,0x1a,0x39,0xed,0x48,0x4c,0x84,0x5d,0xc9,0xe0,0x1f,0x91,0xa1,0x98,0xd3,0xa5,0x2f,0xae,0xa4,0x14,0x8c,0x5a,0x37,0xb9,0x46,0xbe,0x5e,0xbf,0x32,0xdb,0x94,0x91,0xe4,0x7c,0x7f,0x8f,0x26,0xac,0x54,0x87,0x37,0xc9,0x0e,0x17,0x29,0x69,0x89,0xab,0xd2,0x5d,0x86,0x52,0xec,0x4c,0x9c,0x4d,0x10,0xe7,0x6d,0xda,0xbf,0x99,0xd0,0xba,0xde,0x74,0xee,0x4a,0x71,0x67,0x2b,0x30,0x20,0x72,0xfc,0xef,0xfc,0x50,0x23,0x7b,0x1b,0x3b,0xf7,0xc2,0x7c,0x0b};
    static std::uint8_t digest20[32] = {0x0c,0xd2,0xa8,0x27,0x58,0x7b,0x66,0x43,0x66,0x66,0x6f,0x33,0x72,0xf8,0x8a,0x78,0x9f,0xb3,0xb3,0xb8,0xce,0x79,0xa6,0xa1,0xd2,0x74,0x91,0x27,0x11,0x74,0x19,0x14};
    ctx.reset();
    ctx.do_final(digest, msg20, sizeof(msg20));
    if (std::memcmp(digest20, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg21[20]    = {0x29,0x06,0x12,0x73,0xbb,0x8c,0x8b,0x1b,0x6d,0xd6,0xed,0x61,0x20,0x3d,0x73,0x1a,0x42,0x25,0x9c,0xfd};
    static std::uint8_t digest21[32] = {0x86,0xa1,0x59,0xe1,0x02,0xdc,0xde,0xd7,0x54,0x1d,0x64,0xda,0xee,0xd7,0x6c,0x1e,0x15,0x27,0x27,0xc7,0x13,0xb0,0xa9,0x3c,0x95,0x9c,0xeb,0x15,0x14,0xfa,0x38,0xc6};
    ctx.reset();
    ctx.do_final(digest, msg21, sizeof(msg21));
    if (std::memcmp(digest21, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg22[102]    = {0x4e,0x4e,0xf0,0x24,0x19,0xfa,0x04,0x04,0x3c,0xac,0x6b,0x9c,0xee,0x14,0x1a,0x70,0xcd,0x71,0x52,0x0f,0x21,0x22,0xba,0x48,0x8f,0x17,0x0e,0x77,0x6e,0xa0,0xc3,0xdd,0x56,0x96,0x49,0x78,0x7d,0x1c,0x01,0x58,0x04,0x28,0x04,0xc5,0x5e,0xdb,0x77,0xc7,0x70,0x16,0x3c,0x89,0x1b,0x57,0x01,0x4f,0x61,0xc7,0xe4,0x95,0x8b,0x77,0xc4,0xe1,0x2b,0xff,0x25,0x0b,0x38,0x57,0xf4,0xc4,0xbb,0xa2,0x7b,0x67,0x1d,0x23,0x2e,0xc1,0xef,0xbc,0x95,0xd4,0x88,0x3a,0x2e,0x1e,0xaf,0xff,0x63,0xd8,0x30,0xde,0xec,0xc0,0xa8,0xb6,0x42,0x1e,0x63,0xf3};
    static std::uint8_t digest22[32] = {0xfe,0xe2,0xcf,0xb8,0xce,0xf7,0x1e,0x8f,0x1b,0x23,0x02,0xdb,0x8c,0x03,0x1b,0x2b,0xf1,0x86,0x5b,0x26,0x0a,0x12,0xa8,0xbb,0x31,0x4d,0xd3,0xf3,0x9e,0x43,0x06,0xcf};
    ctx.reset();
    ctx.do_final(digest, msg22, sizeof(msg22));
    if (std::memcmp(digest22, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg23[341]    = {0x9e,0x09,0xd3,0xbc,0x2e,0xc3,0xe8,0xc5,0x34,0xb8,0x08,0x1f,0xb7,0x06,0xac,0x9d,0xee,0xdf,0x33,0x61,0xff,0xd1,0xfa,0x6d,0xd2,0x69,0xbf,0x77,0x5f,0x58,0x4b,0x99,0xf8,0xfc,0xbb,0x40,0xfd,0x5f,0xd1,0x64,0xc0,0x47,0x9d,0xef,0x44,0x9a,0x24,0x81,0x8c,0xbc,0x1f,0xd5,0xdc,0x1d,0xbb,0x11,0x1a,0x5f,0x1c,0x03,0xf5,0xc1,0x68,0xd4,0xff,0xe5,0xc3,0x50,0xcd,0xc4,0x4f,0x4f,0x2b,0x0a,0xb7,0x5a,0x47,0x4f,0xfd,0x47,0xe6,0xb1,0xf4,0xa4,0xc3,0x8c,0x70,0xcc,0x03,0x75,0x83,0xbb,0x42,0x40,0x40,0x17,0xdd,0xfb,0xf9,0x26,0xe1,0x33,0x27,0x00,0xa7,0x16,0x45,0x88,0x4c,0x61,0xe9,0x4a,0x97,0x4c,0xb5,0x09,0xae,0x5f,0x0c,0x4b,0x1b,0x5c,0x55,0x10,0xfa,0x65,0x0b,0x74,0xb3,0x66,0x5b,0x85,0x37,0xe0,0x22,0xb6,0x86,0x02,0xd1,0x62,0x8e,0x4b,0x5f,0x56,0x0d,0x84,0xf1,0x2c,0x91,0x28,0x45,0x23,0xc2,0x1e,0x4e,0xc0,0x94,0xb2,0x5b,0x47,0xa6,0x3b,0xc4,0x97,0x1c,0x81,0x32,0xb0,0xff,0xda,0x48,0x6f,0xce,0xbc,0x03,0xc1,0x7a,0x7a,0x34,0xfa,0xf1,0x35,0x67,0x98,0xa2,0x41,0xcd,0xa0,0x59,0xe9,0x32,0xd3,0xf8,0x7d,0x22,0x16,0xa8,0x99,0xc1,0xd9,0x84,0x76,0x7b,0x17,0x00,0xb2,0x72,0x6b,0x50,0xf9,0xf6,0x98,0xea,0x5a,0x35,0x1a,0x1a,0x07,0xa5,0x0b,0xa4,0x1c,0xbe,0x37,0xe8,0x17,0x00,0xf4,0xa3,0xe4,0xa5,0xc9,0x71,0x82,0xa3,0xe3,0x88,0x95,0xaa,0xcc,0x84,0x80,0x05,0x3d,0x6b,0xc6,0x23,0xd2,0xd2,0x65,0x5d,0x0b,0x9c,0xca,0x62,0x63,0x77,0x63,0x34,0xcc,0xe9,0x0b,0xa7,0xe1,0x7c,0x65,0x9a,0x98,0xff,0xdf,0x3b,0xb7,0x5c,0x9c,0xf7,0x1e,0x7d,0xde,0xd6,0xae,0xc3,0xcd,0x90,0x3b,0x72,0x93,0xc0,0x92,0x51,0xcd,0x97,0x4f,0xa3,0xf1,0xa8,0x0f,0xda,0x8b,0x3c,0xe3,0x5c,0x10,0xf2,0x87,0xb9,0xd4,0xaa,0xdc,0x60,0x25,0xb3,0x27,0x63,0xcc,0xfd,0x93,0xa9,0x7e,0xba,0xa5,0x2a,0x2e,0x9a,0x19,0xb5,0xf9,0xb9,0xf7,0x5a,0x3d,0xe6,0xfd,0x45,0x62,0x2e,0xab,0x22,0xbe,0x06,0x0a,0x1a};
    static std::uint8_t digest23[32] = {0x84,0xd9,0x76,0x42,0x06,0x95,0xaa,0x40,0xa3,0x6b,0xf2,0xb9,0x5d,0x6a,0xe4,0x58,0x5e,0xe6,0xa5,0xd4,0x90,0xf9,0x4c,0xe4,0x20,0x7d,0x16,0xd6,0x85,0x2b,0x9c,0xeb};
    ctx.reset();
    ctx.do_final(digest, msg23, sizeof(msg23));
    if (std::memcmp(digest23, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg24[224]    = {0xcf,0xa2,0x29,0x82,0x7e,0xf9,0x47,0xf0,0x6d,0xa4,0x27,0x5c,0x27,0x85,0xb5,0x58,0xbb,0x26,0x58,0x85,0xe6,0x83,0x09,0x07,0x3b,0x5b,0x56,0x92,0xfe,0x98,0x81,0xf4,0xb8,0x2c,0x46,0x1b,0xcf,0xc9,0x07,0x78,0x7b,0xf1,0x88,0x99,0xd9,0x15,0x91,0xd2,0x9c,0x7e,0x6b,0x67,0x45,0xf6,0xf4,0x52,0x76,0x7c,0xf7,0x29,0x39,0x02,0xe6,0x39,0xd3,0x1b,0xe0,0x97,0x18,0x6f,0xd6,0xd7,0xe0,0x93,0x17,0x08,0xd9,0xf2,0x12,0x58,0x7e,0x46,0x36,0xa9,0xb6,0x43,0x90,0x01,0xec,0x43,0xa5,0x05,0x9f,0xbc,0x42,0xe3,0x35,0x4a,0x25,0x07,0xd5,0x6c,0x04,0x6a,0x27,0x2c,0xf9,0x7c,0x79,0x65,0x01,0x7b,0x4d,0x75,0x23,0xe2,0x82,0xf7,0x8a,0x80,0x79,0x64,0x12,0xd0,0x22,0x16,0xdf,0x67,0xdb,0x9c,0x6b,0xb1,0xa9,0xbe,0x2f,0xc7,0x2e,0xba,0xd8,0x71,0xe4,0x87,0xb1,0x31,0x5d,0x9c,0xe9,0xe9,0x0f,0xdd,0x6b,0x9f,0xa3,0xd6,0x93,0xbd,0xd3,0x2c,0x25,0x7f,0x92,0x08,0x01,0x9d,0x9f,0xe8,0xea,0x5f,0x4e,0x9d,0xbf,0x4f,0x1c,0x81,0x50,0x0e,0xf7,0x93,0x56,0x4e,0xa1,0xd6,0x95,0x84,0xa0,0x46,0x6d,0x84,0x07,0x8d,0xe8,0xb1,0x8e,0x90,0xf6,0x29,0xe5,0x02,0xf6,0xa9,0x0d,0x5e,0x4b,0xe4,0xf4,0x9c,0x6f,0x87,0x1d,0x8a,0x4b,0x7b,0x0b,0x1a,0x0b,0x92,0xe5,0x4c,0x0c,0x82,0xf9,0x45,0xcd,0x1d};
    static std::uint8_t digest24[32] = {0x28,0x37,0x70,0x0b,0x44,0xa5,0xde,0x08,0xa1,0x18,0xf6,0xf0,0xe5,0xf3,0x58,0x6b,0x48,0xd3,0xec,0xd6,0xa8,0x89,0x0d,0x40,0x80,0x35,0x7f,0x71,0x52,0xea,0xab,0x28};
    ctx.reset();
    ctx.do_final(digest, msg24, sizeof(msg24));
    if (std::memcmp(digest24, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg25[12]    = {0x98,0xc4,0xaf,0xdc,0x67,0x07,0xe5,0xa5,0xba,0x7a,0x7c,0xcb};
    static std::uint8_t digest25[32] = {0x17,0xd6,0xb7,0xd7,0x7e,0x74,0xa7,0xe0,0xbf,0x33,0x9f,0x83,0x87,0x41,0x84,0x23,0x94,0xa5,0x12,0x69,0x95,0x75,0x9e,0x8d,0xec,0xfe,0xec,0x1e,0xa7,0x94,0x74,0x71};
    ctx.reset();
    ctx.do_final(digest, msg25, sizeof(msg25));
    if (std::memcmp(digest25, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg26[476]    = {0xf3,0xa1,0x1e,0x6e,0x82,0x4f,0x0e,0x9d,0xa0,0x58,0xa8,0x10,0x4c,0xb2,0x7a,0x84,0x9b,0xa4,0x74,0x92,0xc1,0x42,0x0c,0x42,0x9e,0x75,0xcc,0x6b,0x2f,0xf3,0x60,0xe1,0xba,0x82,0x4d,0x39,0xbf,0xf5,0x78,0xc1,0xcd,0x6d,0x5b,0x64,0x5c,0xc8,0x28,0x3a,0xd2,0x97,0x30,0x98,0x1b,0xb0,0x3a,0xf1,0x6f,0x6a,0xe9,0x37,0x88,0xf4,0xab,0xdf,0x20,0xd1,0xca,0xc4,0x85,0xe3,0x69,0xe3,0xe4,0x76,0xd2,0xe0,0xc6,0x79,0x02,0xa9,0xbf,0xbb,0xca,0xa2,0x8a,0xd0,0x5a,0x97,0xf6,0xad,0x64,0x40,0xd3,0xc7,0x83,0xfa,0x3a,0x10,0x72,0xd6,0x00,0x6a,0xfa,0xb9,0xec,0xf2,0x17,0x63,0xf0,0xbe,0x36,0x75,0x9f,0x17,0x0a,0x8f,0x6d,0xd9,0xf0,0xc5,0x8c,0xa1,0x22,0x8c,0x7e,0x63,0x4d,0xf9,0x54,0x47,0x44,0x29,0x06,0x4f,0xbf,0xc7,0x6f,0x80,0x51,0x2b,0x16,0x02,0x18,0x87,0x44,0xa8,0x8f,0x69,0x73,0xe6,0x29,0x7f,0xc5,0x13,0x91,0x58,0x40,0x1f,0x60,0x80,0x3d,0x47,0x66,0x60,0x8b,0x5b,0x1a,0x1f,0x16,0x5a,0x7e,0x1d,0x9f,0x63,0x19,0xdd,0x1e,0x8a,0x09,0x89,0x4c,0xe5,0xef,0xb8,0x73,0xac,0x07,0x30,0x61,0xbb,0xe5,0xb2,0x90,0x1d,0x85,0x3b,0x7f,0x99,0x84,0x04,0xc5,0x14,0xc1,0xf2,0xfc,0x79,0x91,0xf3,0x36,0x7f,0xe0,0x46,0xef,0x88,0x3b,0xbe,0x59,0x1e,0xd1,0x7c,0xaa,0x42,0x84,0x9f,0xae,0x3e,0x73,0xcb,0xcf,0xfb,0x33,0xb4,0x88,0x10,0x33,0xc6,0x39,0x1e,0x71,0x88,0x14,0x61,0x42,0xa8,0x45,0x41,0x9c,0x86,0x6d,0xf9,0xe5,0x22,0xea,0x94,0xc5,0xf3,0xce,0x0c,0xcc,0xdf,0x2a,0x3d,0xec,0x18,0xad,0xb6,0xa9,0xbc,0x88,0x39,0x2c,0x86,0xb5,0x16,0xc2,0x67,0x99,0x43,0x33,0x1e,0xdd,0xef,0x75,0x4e,0x26,0x86,0x83,0x60,0xec,0x16,0x91,0x87,0x18,0x38,0x36,0x23,0xd5,0xc8,0x85,0xa4,0x61,0x5a,0x29,0x6f,0x5f,0x64,0x1b,0x8f,0xf9,0x5b,0x72,0x10,0x70,0x36,0xc1,0x17,0xd4,0x12,0x76,0xfe,0x8c,0x29,0xe5,0x01,0x43,0xd2,0xf9,0x2f,0xaa,0x4d,0x83,0x35,0x96,0x18,0x42,0xee,0xe3,0x71,0x75,0x96,0xf7,0xe2,0x46,0xe5,0xcb,0x87,0xe0,0x51,0x4b,0xa3,0xa2,0x1c,0xe8,0x13,0x4a,0x86,0x32,0xb7,0xe9,0x64,0xef,0x50,0x57,0x56,0x30,0x27,0xd9,0xf8,0xc8,0xe4,0x84,0x40,0xd7,0x19,0xdc,0x3b,0x0c,0x60,0x74,0xfc,0x8a,0xeb,0x2e,0xb5,0x9e,0xfb,0x00,0xc1,0x15,0x26,0x21,0x7e,0xe6,0x06,0xe1,0x2c,0x50,0x60,0xa9,0x7c,0x89,0x15,0xeb,0x6f,0x1d,0x6a,0xfb,0xe0,0x0b,0x17,0x1d,0xb1,0x79,0xb1,0xc3,0x4c,0xde,0xc3,0x4e,0x73,0x3b,0x97,0x81,0x0c,0xe1,0x2d,0xc0,0x59,0xca,0x8b,0x7c,0xa6,0xb1,0x4e,0x93,0x70,0x43,0x62,0x76,0xbd,0x62,0xf4,0xaa,0x63,0x23,0xf8,0xa9,0x50,0x50,0xa7,0xec,0x7e,0x13,0x26,0xa3,0x0e,0xd3,0xfe,0x4f,0xe0,0xb5,0x18,0x3d,0x9f,0xf1,0x46,0xc7,0x05,0x19,0x7a,0x8a,0xe1,0xae,0x20,0x2f,0x85};
    static std::uint8_t digest26[32] = {0x39,0x6e,0x89,0xff,0x34,0xf3,0x4b,0xf8,0xa6,0x5b,0x32,0x5d,0x3b,0x39,0x5c,0xab,0x5a,0x62,0x95,0x82,0x01,0x29,0x2b,0x21,0x6f,0xeb,0x4e,0x6d,0x9f,0xc0,0x45,0x3b};
    ctx.reset();
    ctx.do_final(digest, msg26, sizeof(msg26));
    if (std::memcmp(digest26, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg27[322]    = {0xda,0x61,0xf4,0x90,0x43,0x65,0xa0,0xc7,0x0c,0x28,0x4f,0xbc,0xb3,0xc0,0x96,0xd3,0xfc,0x6a,0x3d,0x46,0xe0,0xb9,0xfd,0x72,0x83,0xf9,0xc8,0xdf,0x63,0xbd,0x6e,0x36,0xe2,0xc0,0x68,0x27,0x46,0x1d,0x15,0x57,0xeb,0x6e,0xb0,0xd5,0x4f,0xf5,0x0a,0xe2,0xbe,0x6e,0xc9,0x70,0xb9,0x30,0x9e,0xd0,0x76,0xed,0xda,0x0a,0x34,0xd9,0x64,0xd6,0x6d,0x0e,0xeb,0x0d,0x8b,0x6d,0x29,0xcd,0xf8,0x70,0x95,0x57,0xf6,0x78,0xa1,0x8c,0x67,0x9a,0xe6,0x35,0x2c,0xaf,0xd9,0x62,0x99,0xc2,0xc5,0xfa,0xc3,0xa1,0x1f,0x5d,0x9c,0x16,0x4c,0xb7,0x28,0x93,0x8b,0xbd,0x79,0x91,0x35,0x42,0xaf,0x32,0xbd,0x39,0xc6,0x4f,0xcb,0xa5,0xda,0xd6,0x77,0x2c,0x70,0x71,0x81,0xdc,0x36,0xcb,0x9e,0x4e,0xc6,0x75,0xe5,0x96,0x31,0x7c,0x76,0x51,0x5a,0x43,0xea,0xb0,0xe9,0x42,0x07,0xe2,0xfa,0x29,0x2e,0x12,0x1d,0x93,0xaf,0xdb,0x6a,0x49,0xa0,0xcf,0x1c,0xbb,0x80,0xaf,0x6a,0xd0,0xfe,0xa1,0x30,0x31,0xe9,0xc0,0x89,0x65,0x67,0xc8,0x5d,0x1e,0x93,0x24,0xce,0xb5,0x12,0x07,0xce,0x84,0xc4,0x20,0xc9,0x0c,0xd4,0xff,0xe0,0xac,0x08,0xbe,0x46,0x26,0xa9,0xb1,0xfd,0xd0,0x49,0x39,0x90,0x02,0x2a,0x33,0xbf,0x88,0xc0,0x93,0x7a,0x53,0x90,0xcb,0x5f,0xd3,0x01,0xb2,0x46,0x8a,0xad,0x15,0xaa,0x2b,0x0a,0x84,0x02,0x5f,0x46,0x97,0x72,0x30,0x55,0x54,0x37,0xfc,0x4b,0xe8,0x32,0x7c,0x2f,0x76,0xd6,0x10,0x6d,0x4f,0x6e,0x2a,0x32,0x17,0x86,0x60,0x05,0xf9,0x4e,0x37,0xdf,0xc1,0x6c,0x07,0x66,0x28,0x60,0x0b,0xc3,0x4d,0x97,0x24,0x29,0x41,0xa1,0xe3,0x0d,0x53,0xab,0xd7,0x1c,0x8d,0xfc,0xe4,0x41,0x29,0x7a,0x41,0xfb,0x79,0x8a,0x6d,0x97,0x67,0x62,0x06,0x61,0x8e,0x89,0x95,0x9b,0xc5,0xb9,0x20,0x65,0x05,0xbd,0xa2,0x97,0xe7,0xcd,0xd2,0x35,0x8c,0x8a,0xb4,0x9b,0xd2,0x9b,0x32,0x13,0xaf,0xb9,0x7e,0xbb,0xdf,0x4b,0x5d};
    static std::uint8_t digest27[32] = {0xa4,0x2c,0x69,0x64,0x1f,0xc9,0xae,0x47,0x36,0x07,0x93,0xa2,0x1b,0x16,0x25,0xc5,0x07,0xcc,0x96,0x4c,0xbf,0x11,0xc7,0x64,0x83,0xb3,0xe6,0xe4,0x33,0xef,0x0b,0x6f};
    ctx.reset();
    ctx.do_final(digest, msg27, sizeof(msg27));
    if (std::memcmp(digest27, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg28[320]    = {0x84,0xf0,0xbd,0x8a,0x6a,0x99,0x1e,0x6b,0x7b,0x66,0x0a,0x01,0x3c,0xdb,0x55,0x9a,0x68,0xf6,0xa0,0x28,0x42,0xc6,0x6f,0x54,0x57,0xb0,0x0c,0x0d,0xdf,0x29,0xdc,0x4f,0x83,0x1e,0xc1,0x55,0xc8,0x3d,0xf8,0x21,0x09,0x65,0x00,0xac,0x23,0x63,0x14,0x16,0x70,0xcb,0xfc,0x79,0x87,0x8e,0x50,0xeb,0x69,0x30,0x49,0xd1,0x37,0xf3,0x0e,0xad,0x00,0xac,0x45,0x36,0xa0,0x37,0x8e,0xa8,0xca,0xf3,0xb7,0xe2,0x75,0xe3,0xd1,0x17,0xbc,0x75,0xc5,0x12,0xda,0x5e,0xb0,0x49,0x71,0x29,0x29,0xb4,0x6c,0x8e,0x7a,0x4a,0xb1,0x47,0xbd,0x33,0x66,0xf9,0xe6,0xaa,0x34,0x43,0xca,0x41,0xa2,0x93,0x13,0xe5,0xe1,0x12,0x29,0x74,0x7d,0x8d,0x3f,0x7d,0xb2,0x73,0x21,0x46,0x57,0xf8,0xb0,0x15,0x3e,0x2c,0x5b,0x74,0xab,0xe2,0xd0,0x60,0x6e,0xd5,0x90,0xfc,0xd4,0x29,0x51,0x58,0x50,0xda,0xe8,0x0a,0x4d,0xa4,0x23,0x53,0xe5,0x42,0x8d,0xaf,0xcb,0xc0,0xe8,0x98,0x03,0x25,0x3e,0x02,0x28,0xce,0xdb,0xea,0xc7,0xb9,0x7f,0xe9,0x8a,0xbc,0x45,0x60,0xdd,0x59,0xb1,0xd4,0xe9,0xb6,0xbc,0x0d,0xb8,0xe2,0xac,0x8a,0x44,0x5e,0x82,0x6d,0xbf,0x4c,0x37,0x6c,0xa2,0x01,0x71,0x81,0x74,0xa0,0x11,0xe7,0x7e,0x8f,0xcc,0x60,0x04,0xe0,0x36,0x32,0x72,0xa7,0x61,0x6c,0xdd,0x87,0xdd,0xc1,0xf4,0x31,0x43,0xd4,0x66,0x74,0x71,0x6b,0xb1,0xba,0x9b,0x86,0xc6,0x8d,0xee,0xf7,0x2d,0xf2,0x6a,0x1c,0x2f,0xe8,0xa1,0x0e,0xcf,0x49,0x21,0xf9,0x10,0xcd,0x39,0x7a,0xaa,0x4d,0xf8,0x9d,0xf0,0x9c,0x90,0xc6,0x2c,0xbf,0xe8,0xc2,0x99,0xab,0x87,0x11,0x49,0x41,0x8a,0x87,0xc5,0x50,0x8d,0xcc,0x2c,0x67,0xd7,0xef,0x69,0x5c,0x81,0xa5,0x24,0xde,0xb6,0x98,0x09,0x38,0xe0,0x1f,0x15,0x98,0xe5,0x32,0x9c,0xb0,0xa6,0x01,0xb7,0x57,0xbd,0x49,0x9d,0x48,0x1e,0x99,0xf3,0x56,0x36,0x85,0x41,0x53,0x4d,0x9d,0x3c,0x16,0xd1,0x25};
    static std::uint8_t digest28[32] = {0x5c,0x52,0xa2,0x30,0x3a,0x12,0x88,0x42,0x06,0xe9,0x02,0xc1,0x4c,0x53,0x97,0xb2,0x96,0x02,0xd8,0x9e,0x03,0x17,0x82,0x32,0xb7,0x66,0xb5,0x7c,0x7d,0xf3,0x0d,0x7d};
    ctx.reset();
    ctx.do_final(digest, msg28, sizeof(msg28));
    if (std::memcmp(digest28, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg29[54]    = {0x1b,0x91,0x40,0x0b,0x63,0x28,0xf5,0x97,0xfc,0x18,0x41,0xb2,0xfa,0x9d,0x0a,0x3b,0x92,0xf8,0x16,0x11,0x00,0x32,0x08,0xb8,0xc0,0xac,0xb7,0x47,0x53,0x01,0x94,0x0f,0x09,0x5a,0xc4,0xc9,0x03,0x66,0x44,0xcc,0x4a,0x9f,0xdb,0xb4,0x7c,0xd3,0xf5,0x1c,0x73,0xff,0x79,0x50,0xf3,0xe7};
    static std::uint8_t digest29[32] = {0xa9,0x75,0x4c,0xca,0xd6,0xac,0x75,0x6a,0x06,0xc8,0x4f,0x0d,0xa1,0xce,0xdb,0x8b,0x49,0x9c,0x37,0x29,0x02,0xac,0x70,0x8c,0xc5,0xdc,0x5f,0x7f,0x89,0x14,0xa7,0xb2};
    ctx.reset();
    ctx.do_final(digest, msg29, sizeof(msg29));
    if (std::memcmp(digest29, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg30[330]    = {0x77,0xd9,0x55,0x42,0x12,0x67,0x2b,0xa1,0x47,0x2c,0xdc,0xe0,0xac,0x77,0xd9,0x7b,0x4e,0x8f,0x20,0x17,0x94,0xdb,0x7d,0x25,0x8c,0x41,0x6f,0x09,0x1a,0xf2,0x67,0xa7,0x56,0x23,0xc7,0x6e,0x8f,0x51,0xc4,0x62,0x27,0x24,0x78,0xea,0x15,0x2e,0xdd,0x3c,0x36,0x5b,0x2e,0xec,0xdc,0xe3,0x26,0xb3,0xfe,0x20,0x57,0x81,0x5f,0xa8,0x65,0x1b,0x86,0x42,0x96,0xa9,0x1b,0x29,0x9f,0x16,0x63,0x62,0x25,0xd4,0xd6,0x29,0x49,0x37,0x0e,0x47,0xfc,0xac,0xb5,0xd3,0x8f,0xec,0x1f,0x4a,0xec,0xce,0x23,0x85,0x62,0x5a,0x9a,0xd1,0xb0,0x6d,0x33,0x80,0x92,0x50,0x3e,0xed,0x1b,0x58,0xf3,0xf4,0x4c,0xf2,0xbb,0xcd,0x69,0xf4,0xe0,0x69,0x19,0x7d,0x20,0xad,0x67,0x31,0xbd,0xe3,0x5f,0x77,0x3e,0x7f,0x80,0x45,0xcb,0xe2,0x39,0x91,0x27,0xbb,0xe3,0x90,0xfc,0x93,0xe8,0xcc,0x34,0x02,0x7c,0x8b,0xb3,0x88,0x34,0xcc,0x95,0x8a,0x55,0xe5,0x19,0x24,0xd0,0x69,0x96,0xf4,0x17,0x99,0x4d,0x13,0xba,0xf5,0xe3,0xd0,0x8b,0xef,0x35,0x51,0x39,0x71,0xbd,0xa6,0x92,0x30,0x96,0xd8,0x89,0x49,0x1c,0xbf,0x09,0xea,0x65,0x4f,0x38,0xe6,0x0b,0xc1,0x8b,0xca,0x9d,0x55,0x1a,0xd2,0x42,0xee,0xc7,0x0f,0x08,0x40,0x97,0x77,0x3a,0x07,0x4e,0x0b,0x98,0x82,0x3e,0x73,0x98,0x3c,0x1e,0xa4,0xcd,0x5b,0x10,0x51,0x6c,0x2c,0x11,0xae,0xaf,0x68,0x43,0x34,0x2d,0x59,0x03,0x5c,0xa7,0x75,0x57,0xd6,0xab,0x52,0xe9,0x65,0x16,0xc8,0x9d,0xae,0xc4,0xae,0x1e,0xb1,0xf1,0x20,0xe3,0xb4,0x4e,0x81,0xb8,0xbb,0x6d,0xdf,0xa6,0x64,0x6c,0x3a,0xa8,0xfe,0x34,0x28,0x23,0xf7,0x91,0xa0,0x8f,0x4c,0x39,0x74,0xc0,0x98,0x56,0x0b,0xb8,0x66,0x4e,0xb7,0xa5,0xe6,0xcf,0xad,0xf0,0x12,0x14,0xcc,0x6d,0xde,0xb6,0x7e,0x01,0x32,0xb7,0x6a,0x66,0x1a,0x24,0x71,0x0a,0x73,0x4e,0x0d,0xb7,0x1e,0x75,0x4d,0x8a,0x25,0xe9,0xc5,0x4f,0xae,0xec,0x7f,0x0d,0x55,0xcd,0x82,0x21,0x6f,0x3c,0x15};
    static std::uint8_t digest30[32] = {0x01,0x52,0x8e,0xd5,0x53,0xc4,0x88,0x43,0xf6,0xbf,0xbb,0xe0,0x6b,0xbf,0x8a,0x26,0xf3,0xcc,0xa0,0xf4,0xff,0x5f,0x25,0xaa,0xf9,0xaa,0xee,0x6c,0x62,0x2c,0xd2,0xb7};
    ctx.reset();
    ctx.do_final(digest, msg30, sizeof(msg30));
    if (std::memcmp(digest30, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg31[393]    = {0xe0,0xbd,0xb7,0x01,0x67,0x13,0xbf,0xd9,0x8d,0x73,0xdf,0x7c,0x37,0xbf,0xf5,0xd1,0xdf,0xd7,0x1b,0xab,0x32,0xcf,0x55,0x3e,0x23,0x28,0x88,0x86,0x06,0x6d,0x81,0x09,0x54,0xc7,0x16,0x1f,0x8e,0x17,0x4d,0xbd,0xad,0x5c,0x21,0xa4,0xfd,0x36,0x9e,0x4a,0x88,0x3f,0x9d,0x84,0x65,0xdd,0x0e,0x04,0xea,0x12,0xcd,0xaf,0x25,0x67,0xe6,0xdd,0x88,0xd9,0x9f,0x66,0xf0,0x83,0x0a,0x75,0xca,0x88,0x04,0x79,0xfc,0x86,0x70,0xa7,0x8d,0x5d,0xe8,0xa8,0xb8,0xe0,0xee,0x22,0xa4,0x8c,0xed,0x4f,0x17,0xa3,0xb6,0x24,0x65,0x32,0x51,0x88,0xa0,0x0d,0xab,0xc8,0x30,0x23,0x93,0xd2,0x0c,0xac,0xcb,0x53,0xe3,0x78,0x2c,0xfb,0x85,0x1a,0x8f,0x49,0xab,0xef,0xa3,0x57,0x41,0x7b,0x0a,0x6d,0x13,0xdd,0xb2,0xb2,0x23,0x38,0xa1,0x25,0x12,0x87,0x19,0xe5,0x80,0x43,0xd6,0x37,0x3d,0x5d,0xe9,0x44,0xd1,0x1e,0xe7,0xfb,0x4b,0xd8,0x6a,0x7f,0xfc,0x57,0x25,0xcf,0xf2,0x3e,0x0a,0x3c,0xbf,0x3f,0xcf,0x0e,0x73,0x50,0xee,0x41,0x0f,0xc1,0x3d,0xef,0xaa,0xfa,0x84,0xc7,0x58,0xb1,0xdb,0x6d,0x8b,0xe9,0x17,0xa2,0xe2,0xaf,0x61,0xf5,0xd5,0x2d,0xd6,0x6e,0xca,0xb3,0x54,0xe4,0x6f,0x2c,0x38,0x6d,0x5e,0x85,0x0a,0x64,0x4e,0x11,0xc6,0x70,0xed,0x50,0x7a,0x25,0xa2,0x4e,0x72,0x47,0xf5,0x1b,0x08,0x3a,0x51,0x5a,0x2d,0x7b,0x0c,0x83,0x1d,0x65,0xaf,0x6d,0xe2,0x63,0xb5,0x4f,0xb1,0x15,0xb9,0xaf,0xdf,0x3a,0xd6,0xbd,0x6e,0x4a,0xc8,0xd4,0x22,0x1b,0x11,0x8a,0xa6,0xdc,0x90,0x9f,0x50,0xa7,0x76,0x8a,0x6a,0x62,0x99,0x7f,0xd9,0x7d,0xae,0xd5,0x73,0xf3,0xb3,0xac,0x4a,0x8d,0xec,0x2a,0x7d,0xb9,0xff,0xae,0x80,0x56,0x77,0xcb,0x22,0xcb,0x37,0x3a,0x3c,0x77,0x83,0x36,0x14,0x0b,0x5d,0x12,0x02,0xec,0x6e,0xeb,0xfa,0x0c,0x85,0x4e,0xc7,0x40,0x85,0x36,0xa5,0x70,0x73,0x43,0xaf,0x47,0x45,0xf8,0x81,0xea,0x79,0x77,0x7e,0x96,0x12,0x23,0x23,0xf8,0x2c,0xdc,0x4a,0x88,0x16,0x9d,0x53,0x0e,0x25,0x92,0x78,0xb4,0x00,0x47,0xad,0xcb,0xef,0x81,0xb6,0x40,0x16,0xa0,0xd9,0xed,0x9b,0x97,0xe5,0xa9,0xc5,0xfa,0x25,0xea,0x8b,0xa7,0x1c,0xe6,0x63,0x5f,0xb0,0x4a,0x34,0x12,0x4f,0x82,0x84,0x2c,0x38,0x83,0x12,0x94,0xe5,0x62,0x34,0x2e,0xfd,0xd8,0x7a,0x8b,0xf5,0x8e,0x70,0x70,0x7e,0xb5,0xda};
    static std::uint8_t digest31[32] = {0x43,0xa4,0x71,0xf8,0xc5,0x9e,0x0a,0x64,0x29,0x99,0xe6,0xed,0x44,0xcd,0x1c,0xd1,0xa1,0x27,0xdc,0x49,0x31,0x00,0x72,0x31,0x80,0x6c,0x33,0x59,0x52,0x92,0xdb,0x28};
    ctx.reset();
    ctx.do_final(digest, msg31, sizeof(msg31));
    if (std::memcmp(digest31, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg32[443]    = {0xf7,0x4a,0xa6,0xed,0x35,0xa9,0x01,0x09,0x77,0x3b,0xa9,0x66,0x0a,0xcf,0xf4,0x7d,0x8a,0x69,0xc0,0x1a,0x34,0x73,0x46,0x0d,0xf4,0x96,0x79,0x57,0x75,0x26,0xf8,0x7c,0x1e,0x54,0xba,0x76,0x93,0x84,0x74,0xad,0x1a,0xe3,0x7f,0x30,0x43,0xa6,0xc8,0xd2,0x6b,0x8b,0x13,0x6f,0xd9,0x4a,0x12,0xdb,0xe4,0xfc,0x2d,0xfb,0xaa,0x25,0xba,0xae,0x05,0x34,0xb2,0xdd,0xb6,0xad,0x0a,0x14,0x18,0x55,0xde,0x50,0xe6,0x4b,0xcc,0x8b,0xd7,0x05,0xf4,0xb7,0x4d,0x83,0xc1,0x69,0x95,0xae,0xf9,0x09,0x86,0x20,0xa5,0x9d,0x6e,0xf1,0x3f,0xff,0xa1,0x34,0xd8,0x3e,0xb3,0x33,0x41,0xab,0xde,0x94,0x2a,0xf3,0xea,0x61,0xc6,0xaa,0xde,0x07,0xbc,0xf5,0xcc,0xc4,0xf2,0xa4,0xe3,0xef,0xbb,0x2d,0xaf,0x7b,0xa0,0xf5,0xe1,0x66,0x25,0xf1,0xf8,0x69,0xfc,0x76,0x4f,0xd2,0xf6,0x17,0xb5,0x63,0x7c,0x32,0xdb,0x34,0x29,0x5b,0x93,0x3b,0xf2,0x97,0x99,0x7b,0x6c,0x9a,0x6e,0xf8,0x03,0x9b,0xe3,0x35,0x50,0x29,0xe6,0x42,0x46,0xa8,0xc0,0x9e,0xe2,0xcc,0x74,0xc0,0x68,0xb6,0x26,0x19,0x0b,0xc2,0xde,0x31,0x89,0x0d,0x21,0x5b,0xbf,0x49,0x3f,0x60,0xe1,0xe0,0xdf,0x8c,0x2d,0x9f,0x7a,0x20,0x6e,0x58,0x12,0x1e,0x1f,0x93,0x9e,0x4d,0xc8,0x0a,0x22,0xe0,0x0c,0xe7,0x91,0x2b,0x94,0xfe,0xe2,0xce,0x65,0x86,0x95,0x48,0x43,0x10,0x39,0xe9,0xf1,0xc6,0xbd,0x6a,0x8e,0x3f,0x1b,0x0c,0xe4,0x4f,0x9c,0x8f,0x2b,0xb9,0xae,0x06,0xe4,0xc0,0x6f,0xe4,0xe2,0x56,0xf3,0x70,0x19,0xcf,0x19,0xd7,0xbd,0xa3,0x27,0x13,0xe8,0x1b,0x80,0xed,0x17,0x79,0x92,0x0b,0x7c,0x8f,0xe7,0x31,0xdb,0xef,0x8d,0x4d,0x74,0x05,0x59,0xd3,0x74,0x2d,0xca,0x89,0xd1,0x5f,0x5b,0xdc,0x89,0x33,0x37,0x30,0xbd,0xa9,0x03,0xb7,0xbd,0x6e,0x4c,0xae,0xee,0x88,0x3f,0xe0,0xc8,0xdc,0xe8,0x62,0x2e,0x2b,0x53,0xd7,0x10,0x8a,0x3a,0xb5,0xf6,0x55,0xcb,0xb7,0xda,0x0c,0xfd,0xff,0xa6,0xec,0x0a,0x71,0xad,0x97,0xb1,0x6b,0x0d,0xbe,0x05,0x06,0xc1,0x0a,0x46,0xad,0xfd,0x9b,0xd4,0x6c,0xa2,0x38,0x37,0x9e,0xa7,0x09,0x2e,0x66,0xe8,0x32,0xb7,0x33,0xb0,0x02,0x92,0x17,0xf1,0xf0,0x5f,0xba,0x45,0xe7,0x23,0xd4,0xf5,0x4d,0xd0,0xad,0x7e,0xf7,0xea,0x8e,0x62,0x5e,0x11,0x1a,0x10,0x8d,0x5f,0xb7,0xd7,0x68,0x35,0xb0,0x7f,0xd8,0xa4,0x96,0xfe,0x90,0xa0,0xa5,0xde,0xaa,0x1c,0xa5,0x74,0x37,0xec,0x4f,0x38,0xbc,0x48,0xb7,0x63,0x23,0x93,0x4d,0x9f,0x38,0xfc,0xaa,0xa7,0xaa,0xb4,0x1e,0x6a,0x67,0x9d,0xa0,0xc6,0xc8,0xb4,0xb3,0x73,0x7e,0x0f,0x31,0x9f,0xfa,0x5b,0xbd,0xe9,0x4d,0x51,0xef,0x7e};
    static std::uint8_t digest32[32] = {0x9a,0x66,0xef,0x8f,0xc7,0xce,0xe1,0xb9,0x32,0x35,0x14,0x2d,0x33,0x9f,0x6c,0x85,0x6f,0x46,0x88,0x41,0xd7,0x2f,0x07,0xdd,0x50,0xe9,0x19,0x66,0x9f,0xec,0x4a,0x78};
    ctx.reset();
    ctx.do_final(digest, msg32, sizeof(msg32));
    if (std::memcmp(digest32, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg33[153]    = {0xc7,0xa2,0xb1,0xb1,0xee,0x69,0xdc,0x8b,0x2a,0xcf,0xfd,0x84,0x0d,0xf3,0x19,0x6e,0x1a,0x02,0x49,0x79,0x19,0x6b,0x88,0xf8,0x0b,0xe9,0xa8,0x8e,0xb8,0x6e,0x7f,0x56,0xb4,0xa1,0x44,0xac,0x05,0x5d,0x09,0x63,0x41,0x38,0x29,0x60,0xe4,0x12,0xfe,0xa0,0xfd,0x21,0x65,0x15,0x2c,0xea,0xe7,0x33,0x77,0xd8,0xcb,0xbe,0xba,0xa2,0x58,0xeb,0x59,0x4e,0x6d,0xe5,0xd7,0x48,0x06,0xdd,0x3a,0xb9,0xdb,0x39,0xe4,0x58,0x82,0x46,0x3b,0x65,0xaf,0x7b,0x34,0xee,0x03,0x07,0x66,0xbb,0x55,0x00,0xa4,0xa3,0x9a,0x89,0x18,0xc0,0xbc,0xbb,0x09,0x9b,0x6d,0x7c,0xf6,0xf7,0x4b,0x08,0x1f,0xcf,0x8a,0x38,0xc6,0xbf,0x73,0xab,0x3b,0x6e,0x41,0x0b,0x6b,0x91,0x19,0xfb,0xd0,0x63,0x98,0xa5,0xe8,0xdc,0xc0,0xdc,0x92,0xbe,0x3a,0x8c,0x01,0x76,0x4f,0x00,0xd8,0x27,0xba,0x48,0xa4,0x2b,0xe5,0x42,0xfd,0x6a,0x2d,0xd5,0x35};
    static std::uint8_t digest33[32] = {0xea,0xc8,0xa7,0x55,0x29,0xd0,0xf7,0xe8,0xce,0x89,0x92,0xb7,0xe5,0xf5,0xd8,0x98,0x0c,0x0f,0x8c,0x94,0xeb,0xd9,0xa7,0xed,0xa4,0x50,0x01,0xae,0x39,0x01,0x30,0xc2};
    ctx.reset();
    ctx.do_final(digest, msg33, sizeof(msg33));
    if (std::memcmp(digest33, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg34[108]    = {0x14,0x77,0xd0,0x19,0x61,0xe1,0x0e,0xea,0x47,0x3d,0xfe,0xc1,0x8a,0xcd,0x8f,0x2d,0x39,0xf1,0x6a,0x2a,0x60,0xd3,0x7f,0x68,0x7b,0x64,0x0e,0x86,0x13,0x68,0x05,0x0c,0xf5,0x3c,0x9a,0xe5,0xa9,0x7b,0xea,0x03,0x60,0x10,0x08,0xaa,0x7d,0x95,0x4b,0xbf,0xc5,0x4f,0x26,0x37,0x59,0x70,0xc6,0x6e,0x67,0xb5,0xff,0xa3,0xa1,0x29,0x0f,0x32,0x15,0x60,0xec,0xd0,0x68,0xf1,0x6b,0xf2,0xb3,0x98,0x80,0x39,0x34,0x0d,0xdf,0xee,0xe6,0x06,0xce,0xa4,0x94,0xf8,0xe0,0xb6,0x81,0xf2,0x37,0xcb,0xa7,0x0c,0xec,0xb2,0x62,0xde,0x10,0x17,0xc7,0x71,0x2f,0x49,0x2c,0x4b,0x54,0x4c};
    static std::uint8_t digest34[32] = {0x11,0x61,0xf6,0x05,0x3b,0xa1,0xea,0x72,0x87,0x61,0x7a,0xc9,0x8a,0x57,0x82,0xf5,0xde,0x36,0xc4,0x6a,0xdb,0x5f,0x8d,0xf8,0xd7,0x36,0x48,0xf6,0xc8,0x56,0x86,0x7b};
    ctx.reset();
    ctx.do_final(digest, msg34, sizeof(msg34));
    if (std::memcmp(digest34, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg35[241]    = {0x13,0x41,0x3c,0x38,0x43,0xe6,0xcf,0x7c,0xd7,0x8a,0xcc,0xed,0x9c,0x70,0x1e,0x61,0x98,0x0b,0x54,0xc5,0x9f,0x3f,0xa2,0x03,0x3b,0x5f,0x97,0xe6,0xd2,0x83,0xfc,0x14,0x66,0x26,0x62,0xf0,0x0a,0x12,0x21,0xd8,0x14,0x68,0x6f,0x4e,0x81,0x47,0x42,0x9f,0xf2,0xa2,0xa7,0xe4,0xb9,0x8b,0xdb,0x32,0x7c,0x2c,0x65,0x70,0xc5,0xc2,0x67,0x6a,0xfa,0x98,0xf5,0xd0,0x55,0xb2,0xf5,0xf0,0xf6,0x58,0xfd,0x10,0x35,0x18,0xd3,0x6b,0x0e,0xfe,0x2b,0x6b,0xa6,0x33,0x50,0xff,0xc7,0xaa,0x1f,0xfa,0x58,0xf8,0x39,0x21,0xc6,0x5a,0x73,0x2a,0x59,0x82,0xf0,0xb8,0x6f,0x26,0x35,0xed,0x5e,0x81,0xbf,0xa6,0xa0,0x4e,0x85,0x30,0x12,0x53,0xfb,0x0c,0x53,0x33,0x0a,0xe9,0xb1,0x34,0xc3,0xc4,0xc9,0x89,0x28,0x0e,0x9d,0x1e,0x8a,0xfc,0x01,0x5b,0x1a,0x3c,0xa6,0x3b,0xac,0x0b,0x74,0x71,0x12,0xfe,0x8d,0x00,0xe4,0xaa,0xff,0x73,0xf7,0x22,0xf2,0x6d,0x82,0x12,0xf9,0xe1,0x5a,0x85,0x2a,0x50,0x6f,0x74,0x5a,0x49,0x9a,0x10,0x31,0x4d,0x8f,0x54,0x94,0x2e,0x70,0xbe,0x2a,0xeb,0x40,0x3b,0x0d,0x70,0xe9,0x54,0x28,0x55,0xc1,0x1e,0x86,0xe6,0xaa,0x88,0xbe,0x9a,0x9c,0xb6,0x54,0x31,0x1e,0x14,0x4c,0x7e,0x9f,0x04,0xe4,0x3e,0xc5,0x36,0x1f,0xfb,0xf4,0x85,0x0d,0xe0,0x06,0x95,0xa7,0xa3,0x44,0x0b,0x18,0x8f,0xa2,0x72,0x21,0xe9,0xd5,0xe8,0x18,0x2f,0x0a,0x35,0xe7,0x26,0x29,0x94,0x10};
    static std::uint8_t digest35[32] = {0x88,0xb6,0xbe,0xbf,0x62,0x8d,0xf8,0x67,0xf5,0xe6,0xef,0x3e,0xf6,0x2c,0x02,0x14,0xd0,0x8d,0xb0,0xbf,0xed,0x4d,0x84,0x92,0x82,0x92,0xa3,0x8d,0x45,0x35,0x30,0xa7};
    ctx.reset();
    ctx.do_final(digest, msg35, sizeof(msg35));
    if (std::memcmp(digest35, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg36[107]    = {0x59,0x4c,0x71,0x2d,0x82,0xdb,0xeb,0xb4,0x55,0xcf,0xd8,0x63,0x5f,0x60,0xcb,0x0c,0x67,0x20,0xd6,0xae,0x53,0x18,0x8c,0x2d,0x3a,0x94,0xd0,0x0e,0x01,0x36,0x6f,0x57,0xfc,0x55,0xeb,0x1f,0x95,0x9a,0xd8,0x44,0xd0,0x3c,0x1c,0xed,0x67,0xd7,0xd5,0xf3,0x2a,0xc0,0xb3,0xb7,0x7a,0x8d,0x87,0x7e,0x1c,0x20,0xaf,0x86,0xc4,0x7a,0x8e,0xd6,0x60,0x7f,0x27,0x47,0xee,0xd6,0x5a,0x65,0xa5,0x87,0x39,0x3a,0x04,0xaf,0xdb,0xeb,0x35,0xa3,0xcb,0x1d,0xf9,0x9b,0x70,0xbc,0x8f,0x22,0x55,0xc6,0x36,0x63,0x07,0xbf,0x9a,0x14,0xf3,0x76,0xa6,0x7c,0x16,0x63,0x80,0x34,0xe0};
    static std::uint8_t digest36[32] = {0x7e,0x02,0xa1,0xda,0xa2,0x7f,0xb5,0x0e,0x10,0x0b,0xf8,0x98,0x67,0x4c,0x87,0x4b,0x2d,0x67,0x7a,0x96,0x8e,0xd1,0x25,0xa5,0x77,0xbb,0x5b,0x88,0x14,0xcf,0x39,0xe7};
    ctx.reset();
    ctx.do_final(digest, msg36, sizeof(msg36));
    if (std::memcmp(digest36, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg37[261]    = {0x36,0xe5,0xbd,0xe5,0xaa,0x10,0x74,0x69,0x96,0x64,0xa1,0xa0,0xa4,0x09,0xf7,0x8d,0xe9,0x78,0x93,0x2f,0x4f,0x67,0xca,0x48,0x0a,0xcd,0x88,0x10,0xea,0x04,0x9b,0x1a,0x6e,0xac,0xa6,0xa7,0x72,0x9c,0xa8,0xcd,0x02,0xfa,0x44,0x22,0x8e,0x9b,0x07,0xd8,0x59,0x74,0x60,0xab,0x85,0x9d,0x14,0x21,0x05,0x41,0xcd,0x7c,0x85,0x29,0xa5,0x03,0x07,0x14,0x6d,0xf0,0x2e,0x3f,0xdc,0x17,0x00,0x87,0x00,0xf5,0xce,0x17,0x8b,0x26,0x2b,0xdb,0x56,0x34,0x0d,0x42,0x33,0x7b,0xc3,0xfe,0xf1,0xec,0x09,0xae,0x8a,0xcd,0xd4,0xad,0xe3,0x28,0x87,0x7c,0x60,0xfa,0xb4,0xa1,0x71,0x94,0xc5,0xdb,0x4f,0x3d,0xa8,0xde,0xe3,0x86,0x00,0x9e,0x50,0xb2,0x65,0x62,0x6c,0x7b,0x37,0xd8,0x06,0x0f,0x0a,0x20,0xf4,0x12,0x45,0x69,0xdb,0x57,0x48,0xa0,0xff,0x5e,0xba,0xe6,0xe0,0x79,0x89,0x3e,0x1e,0x2e,0x0a,0x40,0x44,0x8d,0x40,0x79,0x8a,0xf3,0xdf,0x98,0x35,0x54,0xfd,0xbb,0x1b,0xf2,0x80,0x06,0x49,0x50,0x96,0x6b,0x2a,0x55,0x2e,0xca,0xaf,0x80,0x70,0x58,0x6a,0x52,0x24,0x34,0x91,0x7a,0xec,0x63,0xf8,0x60,0x6b,0xeb,0xb5,0xbf,0xe1,0x63,0xd9,0x79,0x90,0xdb,0xb9,0xfd,0x1b,0xe5,0x43,0xbc,0x1a,0x06,0x9e,0x70,0x0e,0xb4,0x00,0xc5,0x73,0x85,0xe7,0x76,0x99,0x2c,0x42,0x32,0xd2,0x01,0xba,0x1a,0xec,0x64,0xec,0x2b,0xa9,0x73,0x3d,0xee,0x73,0x49,0x29,0x3e,0x71,0xf0,0x3b,0x80,0xa5,0x92,0x50,0xcc,0xd9,0x69,0x61,0xd2,0xc8,0x36,0x3d,0x73,0xc1,0x2f,0x34,0xaf,0x06,0x19,0xd3,0x8d,0xe8};
    static std::uint8_t digest37[32] = {0xb3,0x01,0x30,0xac,0x1c,0xe2,0x04,0x30,0x50,0xd9,0xe0,0x8b,0xbb,0xa9,0x5c,0x44,0x5d,0x5f,0x9a,0xde,0x25,0xd2,0x47,0x8c,0xb2,0x79,0x04,0x38,0xe5,0xa2,0x6e,0xbe};
    ctx.reset();
    ctx.do_final(digest, msg37, sizeof(msg37));
    if (std::memcmp(digest37, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg38[508]    = {0x78,0x8a,0xa4,0xf1,0xba,0x8b,0x80,0x30,0x44,0x5a,0xa3,0xf8,0xb5,0x01,0xd3,0xf0,0x7c,0xe7,0xb1,0xae,0x22,0xc3,0x56,0xe4,0x96,0x31,0xd9,0x2d,0x29,0x2b,0xe6,0x87,0xcd,0x66,0x44,0xa1,0xda,0xf6,0x4e,0x0b,0x4a,0x2c,0x2c,0xe7,0xbd,0xdd,0xec,0xdc,0xd5,0x6a,0x8b,0xc1,0x68,0x10,0xff,0xd5,0x8f,0x9a,0x4b,0x6a,0x7b,0xea,0x6e,0x43,0x5c,0x0b,0x17,0xac,0xf9,0xbb,0xbc,0x20,0xc7,0xe7,0xfc,0x56,0x78,0x76,0xed,0x56,0x31,0x6b,0x51,0x92,0x75,0xdc,0x02,0x4d,0x16,0xae,0x19,0x92,0x4a,0x82,0x2d,0x19,0xca,0x44,0x2a,0xb4,0xb7,0x53,0x41,0x82,0xb7,0x22,0x0a,0x19,0x30,0x29,0xd1,0xa5,0xf7,0xc2,0x11,0x9f,0x8e,0xac,0x95,0x9d,0x1c,0xd5,0xaf,0xa0,0xcc,0xb7,0x44,0x72,0x30,0x5b,0x50,0x86,0xa1,0xdc,0x72,0xf9,0x34,0xf6,0x97,0xbc,0x86,0x16,0x95,0xfc,0x46,0xb1,0x2a,0xca,0x00,0xf9,0x38,0x57,0xb6,0xc0,0x8a,0x41,0xbf,0x02,0x80,0xd7,0xc5,0x41,0xc1,0xb8,0x00,0xc0,0x0d,0x06,0xdf,0xaa,0x49,0x07,0x21,0xbf,0xcf,0xcb,0x3d,0xa6,0xbf,0xcd,0xdb,0xfd,0xde,0x07,0x15,0xfb,0x56,0x92,0x76,0x23,0xfd,0xec,0x21,0x2c,0xf0,0x76,0x91,0x62,0xb0,0x5c,0x85,0x35,0xaa,0xb2,0x21,0x5b,0x5c,0xfe,0x5e,0x12,0x42,0x66,0x9e,0x01,0xe4,0x1e,0x8d,0x0d,0x64,0x1a,0xee,0x77,0xf8,0x81,0x8c,0xb0,0xb4,0xfe,0xa4,0x17,0x5b,0x47,0x44,0xef,0x90,0x81,0x3f,0xe6,0x5d,0x93,0x30,0xeb,0xcf,0x56,0x7d,0xf4,0xf0,0x0f,0xa1,0x41,0xa0,0xe5,0xc5,0x23,0x74,0x69,0x69,0xc7,0xaa,0x8b,0xa6,0x68,0xd3,0x3c,0x28,0xa0,0x9e,0xae,0x07,0xd3,0xf1,0x5c,0xa8,0x7c,0xc3,0x83,0xa3,0x26,0x24,0x8a,0x18,0x41,0x16,0x00,0x07,0x35,0xc9,0xfd,0x24,0x22,0x5d,0x59,0x65,0x64,0xee,0x60,0xe1,0xfd,0xef,0xb0,0x5f,0xe6,0x08,0x7e,0x71,0x82,0x08,0x12,0x08,0x22,0x09,0x87,0x61,0xff,0x74,0xdc,0xa6,0x76,0x3f,0xcd,0x0d,0x91,0x3c,0xfd,0x9c,0x3f,0x62,0x82,0xb0,0x14,0x3e,0xbd,0xf9,0xa5,0xed,0x62,0x13,0x18,0x2a,0xbe,0xe3,0xe6,0x7c,0x64,0xb4,0xde,0x60,0x66,0xaf,0x24,0xf2,0xb1,0x86,0xdc,0xb9,0xa9,0x07,0xe5,0xa1,0x6d,0xa3,0xbf,0xc5,0x64,0x05,0xdf,0x3f,0xb7,0x5d,0xf8,0x9e,0xfe,0x96,0x28,0xfe,0x4a,0xe4,0xad,0xad,0x05,0xdb,0x86,0x9d,0x19,0x55,0x51,0x06,0xe8,0x88,0x78,0xdb,0x47,0xb7,0xa1,0x2f,0x66,0x15,0x5c,0x24,0x0f,0x65,0x35,0x11,0x19,0xd7,0xeb,0x75,0xbf,0x2a,0xdd,0x8e,0xf4,0x2d,0x80,0x23,0x50,0x5c,0xa4,0x23,0xaf,0xb9,0x6b,0x56,0x32,0xcc,0xea,0x70,0x7f,0x0c,0x32,0x52,0xa3,0x54,0xdd,0xbc,0x93,0xb9,0xf5,0x63,0x44,0xf9,0x15,0x1a,0x14,0x77,0x3f,0x34,0x60,0x4a,0x6e,0xf7,0x1d,0x52,0x9e,0x81,0xab,0x0f,0x99,0x78,0x6b,0xb4,0x3a,0xbf,0x3b,0x45,0x86,0x13,0x91,0x41,0x95,0x10,0xa0,0x1f,0x2d,0x79,0x6b,0x93,0xf9,0x16,0x29,0x43,0x47,0x51,0x8d,0x78,0x28,0x04,0x82,0x3c,0x8c,0x68,0x5f,0x4a,0x9f,0x56,0xff,0x72,0xf8,0x16,0x93,0xaa,0xaa,0x53,0x29,0x0d,0xdc,0x53,0xa8};
    static std::uint8_t digest38[32] = {0xf1,0x7c,0xe7,0x75,0x08,0x45,0x1c,0x00,0xd2,0xf8,0x54,0xcf,0x46,0xd4,0xe7,0xc6,0x69,0x8c,0xf5,0xe3,0xcc,0x5f,0xe7,0xdf,0x32,0x6d,0x7b,0x95,0x2f,0x0b,0xb8,0xae};
    ctx.reset();
    ctx.do_final(digest, msg38, sizeof(msg38));
    if (std::memcmp(digest38, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg39[367]    = {0xd7,0xb7,0xb4,0x6c,0xb3,0x5d,0x0c,0xb2,0x89,0x20,0x94,0x52,0x30,0xcb,0xa1,0x60,0x4b,0xf1,0xda,0x90,0x38,0x21,0xd2,0xe7,0x95,0x70,0xa2,0x4a,0x8d,0x72,0x67,0x81,0x2c,0xd1,0x48,0x53,0x8c,0xa9,0x15,0x40,0x88,0xb5,0x56,0xd9,0x16,0x12,0xcf,0x46,0x0e,0xb1,0x49,0x02,0x39,0x9d,0xf6,0x4b,0x82,0x1a,0xca,0x3d,0x9f,0x88,0x32,0xae,0x08,0x67,0x73,0x84,0x4e,0xf3,0x37,0xbf,0xda,0x3f,0xea,0xa9,0xd6,0xa8,0xed,0xe8,0x91,0xc9,0x82,0xa3,0x10,0xe0,0x45,0x8a,0x77,0x41,0xf2,0xf9,0xcc,0xeb,0xa9,0x9d,0x71,0xc1,0x27,0x36,0x8f,0x27,0xc0,0xac,0xce,0xb2,0x86,0x53,0x98,0x3d,0x03,0x69,0x28,0x75,0xa0,0x51,0x4e,0xe1,0xe4,0xe8,0x41,0xec,0x8f,0xeb,0x71,0x52,0x1b,0x64,0x27,0x95,0x75,0x64,0x9f,0x71,0x9c,0xf3,0xd9,0xaf,0xa6,0x97,0x80,0x7e,0xb4,0x2b,0xb8,0x67,0x66,0x88,0xc1,0x50,0xf2,0x50,0x77,0xbe,0xff,0x42,0x13,0x22,0x36,0x41,0x8a,0x61,0xb0,0xa9,0x0b,0xb5,0x0a,0xd7,0xf1,0x4e,0x4e,0xca,0xd0,0x22,0xb9,0x7e,0x20,0x3d,0x1a,0xc0,0xdf,0x9e,0xee,0x6f,0x6f,0x50,0xc8,0x7d,0x50,0x0a,0xf7,0xa7,0x5b,0x91,0xe8,0xd9,0x84,0xe8,0x4a,0xa4,0x20,0x02,0xbb,0xa1,0xb8,0x4a,0xc9,0xb8,0xe2,0x3a,0xba,0x85,0xf6,0x3c,0x8f,0x54,0x2b,0x4c,0x88,0x22,0xbb,0x84,0xad,0xec,0x1f,0xd9,0x7a,0x68,0x0c,0xfe,0x02,0xbc,0x15,0x28,0x7e,0x70,0x5a,0xff,0x64,0x39,0x6c,0xfa,0x32,0xe4,0xfb,0x1c,0xbb,0x58,0x27,0x30,0xdc,0xc5,0xbc,0x4a,0x52,0xeb,0xe2,0x98,0xc8,0xf0,0x07,0x1e,0x77,0x89,0x80,0x4e,0xdc,0x3d,0x3b,0x02,0xb0,0x5a,0xd3,0x87,0xd5,0x57,0x75,0x2f,0x37,0x86,0x65,0x94,0x71,0x3f,0xa9,0x87,0x0d,0xe1,0x26,0x0c,0xb1,0xa6,0xac,0xfb,0x46,0x62,0xd4,0xd8,0x97,0x32,0xc3,0x34,0x43,0xe0,0x25,0x46,0x01,0x2c,0x50,0x62,0xfa,0x6a,0x3d,0x3e,0x92,0x69,0x0d,0x8a,0x4b,0x3d,0x3b,0xbb,0x98,0x65,0xd3,0x67,0x07,0x66,0xcd,0x0a,0xbe,0x1c,0xc0,0x57,0x76,0x31,0xe6,0x4b,0x25,0x20,0xfc,0x49,0x5c,0x38,0x44,0x6d,0x67,0xc6,0xae,0x31,0xf3,0x24,0xac,0x63,0x26,0x32,0xf3,0xa9,0xe3,0xc9,0x8a,0x9f,0x24,0x0c,0xd5,0x53,0xc6};
    static std::uint8_t digest39[32] = {0x42,0x9f,0x21,0x46,0x05,0x00,0x99,0xd4,0x98,0x53,0x0b,0x45,0xfd,0xaf,0xc9,0x0f,0x4a,0xe4,0x6a,0x11,0x85,0x9a,0x9f,0x10,0x27,0xa3,0xa9,0x2d,0x57,0xf2,0x5d,0x48};
    ctx.reset();
    ctx.do_final(digest, msg39, sizeof(msg39));
    if (std::memcmp(digest39, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg40[33]    = {0x36,0x7d,0x1c,0x1f,0xd6,0xdc,0x50,0x02,0x71,0x78,0x59,0xf6,0xdc,0xf9,0x07,0x04,0xfd,0xfd,0x96,0x87,0xca,0x85,0xbc,0x84,0x7a,0xb5,0xd6,0xe2,0x36,0x06,0x05,0x9b,0x9f};
    static std::uint8_t digest40[32] = {0x5e,0x17,0xcd,0x77,0xd8,0xce,0xc5,0x18,0xb2,0xf5,0xbb,0x0e,0xa1,0xe8,0xd9,0x7e,0xe3,0xa3,0x16,0xbc,0xa1,0xcb,0x6e,0xde,0x88,0x4d,0x6e,0x71,0x73,0xbd,0x17,0x18};
    ctx.reset();
    ctx.do_final(digest, msg40, sizeof(msg40));
    if (std::memcmp(digest40, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg41[134]    = {0x78,0x7b,0x78,0xe2,0x98,0xf1,0xd1,0xf9,0x5c,0x6a,0x56,0xc8,0x5d,0xf7,0x0b,0x3e,0x49,0x05,0xaa,0x20,0x19,0x5d,0x3b,0xe3,0xa4,0x98,0xb0,0x87,0xf4,0x06,0x71,0xed,0xc8,0x49,0xb4,0x2f,0x02,0xb3,0xed,0x68,0xd0,0x1f,0x70,0x29,0x32,0x26,0x85,0xd6,0xef,0x42,0x4d,0xa2,0xbd,0x3a,0x2f,0xc2,0x38,0x3f,0xfc,0xc5,0xfb,0xda,0xf0,0xd3,0x0f,0x5c,0x44,0xaa,0xeb,0x17,0xe3,0xe2,0x92,0x02,0xf1,0x74,0xaf,0x1a,0xef,0xf9,0x0e,0xe3,0x90,0xc6,0x96,0x82,0xde,0xe5,0xe1,0x3a,0x7c,0xa1,0x26,0x2e,0xdd,0xd8,0xc7,0x7b,0x7e,0x17,0xf0,0x3f,0xc6,0x69,0x25,0x32,0x07,0xcd,0x3f,0x8b,0x5e,0xf3,0xeb,0x7f,0xc8,0x4e,0x82,0xb9,0x4c,0x23,0x1f,0x69,0x38,0x7f,0xda,0x38,0x60,0x5a,0x28,0x32,0x49,0x54,0x73,0xd7};
    static std::uint8_t digest41[32] = {0xa7,0xcb,0x14,0xcf,0x74,0xae,0xc8,0xfe,0xfc,0x96,0xd8,0x69,0x25,0x3c,0x1b,0x25,0xd9,0x12,0x70,0xd8,0x6f,0x92,0x02,0x02,0x93,0x33,0x35,0xb9,0xaf,0xdf,0xca,0x2f};
    ctx.reset();
    ctx.do_final(digest, msg41, sizeof(msg41));
    if (std::memcmp(digest41, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg42[206]    = {0xfc,0xe8,0x58,0xc8,0x91,0xf4,0x97,0x35,0x61,0x0b,0xec,0x5b,0x06,0x35,0x65,0xa5,0x9b,0x0b,0x56,0xb7,0xbd,0x9d,0xd1,0xde,0xa8,0x67,0xea,0x59,0x0f,0xc3,0xf5,0xf3,0xa9,0x33,0x5d,0x37,0x8c,0x7a,0x91,0xed,0x6c,0xbf,0xfc,0x3f,0x0c,0xea,0xb5,0xee,0x85,0xed,0x97,0x03,0x03,0x74,0x1c,0xee,0x8e,0xbe,0x4b,0xe3,0xb6,0x22,0xd0,0x76,0xe0,0xd3,0xa1,0xf7,0x7b,0xe4,0x17,0x91,0xe9,0x10,0xc2,0x76,0x1c,0x5d,0xca,0x49,0x82,0xd7,0x4f,0x18,0xc0,0x41,0x3b,0xe3,0x88,0x20,0x50,0xfc,0x7b,0xeb,0x0b,0x2f,0x8d,0x08,0xc2,0x0f,0x45,0x4b,0xd2,0x15,0x28,0x07,0x5b,0xab,0x0d,0xa6,0xe9,0xb8,0xf7,0xdc,0x67,0xb7,0x65,0x6c,0xe9,0x7a,0x9c,0xf6,0x2e,0x24,0x7b,0xeb,0xd5,0xfb,0xac,0x6c,0x60,0x2b,0x97,0x4c,0xf8,0x52,0x12,0xbb,0xf0,0xfd,0x28,0x83,0xe3,0x79,0x88,0x0e,0xba,0x24,0xd1,0x92,0x46,0x4f,0x71,0x6b,0x75,0x70,0x7a,0x68,0x9a,0x31,0x10,0x1c,0x89,0x34,0xee,0xec,0xbb,0xda,0x7f,0x3e,0xad,0xf9,0x5e,0x2d,0x39,0xf5,0x0c,0xcc,0xcf,0x34,0xd7,0x87,0x34,0xfb,0x77,0x86,0x78,0x47,0xa7,0x06,0xff,0xdb,0x4c,0x06,0x14,0xc6,0xdc,0xb5,0x35,0x88,0x8b,0x0c,0xf6,0x3f,0xd6,0xec};
    static std::uint8_t digest42[32] = {0x91,0x8f,0xb0,0x4c,0xb3,0x63,0x7d,0xc6,0xa7,0x93,0x88,0x41,0x13,0xed,0x43,0xb8,0x06,0xa4,0x05,0xb6,0x18,0x8f,0x9f,0xca,0x17,0xd5,0x21,0x05,0x6a,0x32,0x02,0x80};
    ctx.reset();
    ctx.do_final(digest, msg42, sizeof(msg42));
    if (std::memcmp(digest42, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg43[492]    = {0x2e,0x13,0xde,0x47,0xec,0x9f,0xa6,0x3d,0x21,0xb3,0xa1,0x36,0xb3,0xe5,0x50,0x0b,0x93,0x1a,0xfb,0xdd,0xc1,0x50,0x60,0x66,0x58,0xe4,0xa6,0x61,0xd2,0x05,0xa8,0xec,0x16,0xd9,0xb3,0x2b,0x95,0xa8,0xf1,0x28,0x10,0xb9,0x21,0x50,0x2d,0x61,0x64,0xfd,0x32,0x04,0xa2,0xbb,0x6c,0x8a,0x2b,0x1c,0x9a,0x7b,0x9a,0x04,0xdb,0xfa,0xa8,0xb4,0x23,0xfc,0x72,0x65,0x4c,0xee,0x34,0x20,0x81,0x39,0x80,0xeb,0xf6,0x69,0xe5,0x6d,0xe8,0x7c,0x56,0xe2,0xa2,0x4c,0x90,0xc9,0xea,0xac,0x0f,0xe8,0x88,0x6e,0xe1,0x4a,0x45,0xbb,0x9c,0x1c,0x6e,0x61,0x43,0xee,0x51,0x9c,0x55,0x03,0x0f,0xe3,0x79,0x6b,0x38,0x35,0x34,0x7d,0x8f,0xac,0x91,0x35,0xea,0x93,0x36,0x00,0x58,0x9e,0x1b,0x0c,0xd2,0x98,0x4b,0x17,0x8d,0xf2,0xe5,0x56,0x90,0xda,0x8d,0xcb,0xd1,0x0a,0xff,0x0d,0x5f,0x6d,0x28,0xc4,0x2a,0xa1,0x2e,0x1b,0x2d,0x3a,0x5e,0x78,0x02,0x0b,0x04,0x01,0xa7,0xbb,0xe2,0xc1,0x45,0x39,0x97,0x36,0xd7,0xc0,0x25,0xea,0x00,0x8e,0xab,0xa1,0xdf,0xe4,0xfb,0x97,0xe3,0x84,0xda,0x7b,0xb6,0xc3,0xba,0x15,0xe6,0xac,0x3a,0x4a,0x21,0x2e,0x96,0x60,0x1b,0xb0,0x94,0xd7,0x60,0x07,0x72,0x84,0x6e,0x2f,0x91,0x0d,0x7f,0x5b,0x3f,0x3c,0x29,0x99,0x7f,0x48,0xe2,0x57,0x0e,0xbb,0x10,0xed,0xaa,0xe2,0x4a,0xb2,0x6e,0x7d,0x02,0x59,0xf0,0x29,0xb2,0x48,0x35,0x91,0xa6,0x49,0x5e,0xce,0x7f,0x5a,0x32,0x50,0x8f,0xf2,0x03,0x8b,0xb0,0x82,0x24,0xcf,0xe1,0x38,0x16,0x6d,0xd7,0x31,0x38,0xcd,0x6b,0x43,0xd9,0x95,0xcb,0x5a,0x77,0x5b,0x3a,0x16,0xc7,0x9f,0x88,0x72,0x44,0x39,0x68,0x5f,0xa7,0x24,0xf9,0x63,0xeb,0x43,0x9e,0x61,0x42,0x08,0x77,0xc6,0x02,0xeb,0x45,0x0a,0x54,0x5a,0x4f,0x7a,0x6d,0xcb,0x0d,0xa3,0x1e,0x18,0x3b,0xe7,0xa4,0xbe,0x8c,0x25,0x70,0x6a,0x1a,0x35,0xc6,0x6b,0xca,0xc2,0x39,0x12,0xa3,0x19,0xc6,0xff,0xb5,0x9a,0x4f,0x22,0x54,0xd9,0xd0,0x9f,0xa0,0x4b,0xba,0x02,0xf2,0x15,0xa1,0x1f,0x74,0x1d,0x99,0x1b,0x48,0x6d,0xb1,0xf1,0xe5,0x02,0x73,0x72,0x91,0x90,0x82,0x37,0xc0,0x99,0x83,0x75,0x0f,0x8e,0xf1,0xf1,0x45,0x67,0x89,0x62,0x46,0xea,0xbb,0x49,0x1b,0xfa,0xf9,0x46,0x19,0x0d,0xfe,0xcc,0xf4,0x50,0xc1,0xa6,0x1c,0xd0,0xa9,0xe3,0x0c,0xfd,0xad,0x13,0x44,0x4d,0xef,0x7d,0x4d,0xfd,0x26,0x7f,0x14,0x08,0x49,0x1e,0x28,0xa5,0x58,0xe3,0x5e,0xdf,0x98,0x64,0x0a,0x45,0x92,0x03,0xcc,0x30,0x62,0x60,0x33,0xf0,0xbe,0xc3,0x13,0x0c,0x80,0xd6,0x5f,0x16,0xed,0x74,0x9c,0xfc,0x96,0x66,0x1c,0x5d,0x55,0x50,0x54,0x88,0x0a,0x3d,0x88,0xd2,0x68,0xd0,0xaf,0x39,0xdb,0x81,0x54,0x52,0x73,0x98,0x7e,0x45,0x1d,0xf7,0x42,0x9d,0x4b,0x05,0xd4,0x76,0x8c,0x76,0x9e,0x70,0x8f,0x5a,0x09,0xd5,0x35,0xab,0xaa,0x02,0x64,0xd4,0x5f,0xf2,0x15,0xed,0x57,0x77,0x18,0x86,0xe0,0x69,0xf3,0xae};
    static std::uint8_t digest43[32] = {0x52,0xc2,0x19,0x4d,0xff,0xcd,0xaa,0x41,0x13,0x21,0xcf,0xd7,0x4d,0xf9,0x35,0x7b,0xc7,0xd0,0xe7,0x5e,0x7d,0x42,0x7a,0x0f,0xd2,0xdf,0x29,0xe0,0xae,0xe0,0xde,0x65};
    ctx.reset();
    ctx.do_final(digest, msg43, sizeof(msg43));
    if (std::memcmp(digest43, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg44[141]    = {0x0d,0x7f,0x7c,0xe0,0xb1,0xa1,0x45,0xb7,0x00,0x60,0x3e,0x21,0xca,0x3f,0xd6,0x71,0x33,0x0e,0xa5,0x45,0x90,0x83,0x1c,0x02,0xfd,0xc7,0x2c,0x71,0xe5,0x3a,0x43,0xe5,0x3d,0x3f,0xf7,0x12,0xac,0x44,0x7e,0xcb,0x97,0x50,0xf7,0xb3,0x2d,0x46,0x81,0xc6,0x40,0x79,0xa4,0x3b,0xdf,0x32,0xf6,0xb5,0xf1,0x5c,0x63,0xa1,0x8f,0x25,0xc0,0x0e,0xf5,0x6c,0x84,0x3b,0xb0,0x75,0x04,0xa0,0x4a,0x32,0x41,0x35,0xa9,0xcc,0xbe,0xb7,0xab,0x75,0x6e,0xb1,0x42,0x52,0x8d,0xc7,0xf8,0x0a,0xca,0xd4,0xca,0x03,0x36,0x88,0x7a,0x6b,0x49,0x57,0xeb,0xfa,0x51,0xad,0x66,0x57,0x73,0x97,0x36,0x58,0x0f,0x07,0xd2,0x89,0xaa,0x3c,0x56,0x0d,0x39,0x14,0x1a,0xb4,0x38,0xe0,0x44,0x37,0x49,0x4a,0x51,0x80,0xf1,0x58,0x6c,0x7a,0x0f,0x6f,0xc8,0xe1,0x4e,0x05,0x02};
    static std::uint8_t digest44[32] = {0xc7,0xf8,0x07,0x73,0x38,0xe2,0xdd,0x1f,0xd1,0xd9,0x50,0xc4,0x0c,0xaf,0x2d,0x2c,0xe1,0xa1,0x86,0x98,0xb2,0x28,0x33,0x46,0xf7,0x0e,0x8d,0x52,0x8b,0x60,0x15,0xa3};
    ctx.reset();
    ctx.do_final(digest, msg44, sizeof(msg44));
    if (std::memcmp(digest44, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg45[111]    = {0x86,0xa5,0x7d,0x2a,0xf5,0x74,0x69,0x0b,0x0d,0xd6,0x3d,0x03,0x94,0xf9,0xdd,0x04,0x09,0x33,0xbc,0xe5,0x64,0xdd,0x8a,0x9f,0x27,0x56,0xd5,0xd9,0x13,0xe9,0xcb,0x32,0x39,0x09,0x54,0xed,0xa7,0x4a,0x89,0xa5,0x20,0x96,0xfb,0x08,0xa2,0x10,0xd2,0xad,0x2f,0xfc,0xe1,0x01,0xb5,0x3d,0xdc,0xdd,0xa1,0xb4,0x16,0x9b,0x0f,0xc1,0xed,0x64,0xf5,0x30,0xcc,0xc5,0xc5,0x3b,0xdd,0x43,0x44,0x4c,0x9e,0x66,0x2a,0x4f,0x7a,0x33,0xae,0xcc,0x85,0xad,0x05,0x00,0x44,0x79,0x53,0x60,0x79,0x79,0x97,0xe9,0x56,0x7a,0x68,0x7f,0x4f,0x85,0x61,0xcc,0xf6,0x2a,0x11,0x55,0x3a,0x66,0x6d,0x4b,0x6d};
    static std::uint8_t digest45[32] = {0x6d,0xc5,0xa2,0xf8,0xe7,0xeb,0x44,0xa7,0xb9,0x09,0x5d,0xc4,0xe6,0xc5,0x9b,0x42,0x38,0xcd,0xc4,0xf1,0x80,0xa4,0x61,0x05,0x74,0xd6,0xfb,0x4c,0x16,0xf4,0xeb,0x19};
    ctx.reset();
    ctx.do_final(digest, msg45, sizeof(msg45));
    if (std::memcmp(digest45, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg46[268]    = {0x01,0xd9,0x8b,0xc0,0x57,0xf3,0xe6,0xe3,0x55,0xa7,0x6e,0xfc,0xbf,0xcd,0x20,0xc2,0xad,0xc9,0x86,0x32,0xcb,0xdf,0x7d,0xcc,0x95,0x57,0x0b,0x76,0x2c,0x67,0x0a,0x14,0xff,0x61,0xf0,0x6e,0xeb,0x3a,0xa0,0x2f,0x65,0x60,0xa7,0x98,0x99,0xd6,0x9d,0x6f,0x0f,0xd5,0x08,0x13,0xa1,0x33,0x97,0xb6,0x12,0x01,0xfd,0xb8,0x7b,0x6b,0xe9,0xda,0x47,0x9b,0x91,0x73,0x30,0xec,0x4a,0x7c,0x9f,0xfc,0x0d,0xcf,0x44,0xae,0xd6,0x53,0x80,0xa9,0x8f,0x62,0xcf,0x76,0xaa,0xf3,0x95,0xc5,0xca,0xdb,0x72,0xb6,0xc1,0xd8,0xe4,0x40,0x01,0x2d,0x43,0x1f,0x86,0x8b,0xb9,0xe4,0xf2,0x27,0xc8,0xd2,0xd5,0x73,0xf4,0xfd,0x33,0x22,0xdf,0xa3,0xbf,0xef,0x5e,0xe1,0xbc,0xbb,0x67,0x28,0x79,0x55,0xce,0xe8,0x77,0x2a,0x8f,0x47,0x35,0x18,0x3e,0x4c,0x20,0x8b,0x22,0xd1,0x29,0xe4,0x99,0x2b,0x5c,0xc1,0x4d,0x65,0x6e,0xc7,0x9b,0x0a,0x81,0xe1,0x15,0x47,0x3d,0x5a,0x7c,0xed,0x03,0xa6,0x7a,0x69,0x04,0x86,0x9c,0xb2,0x6c,0x82,0xa5,0xa4,0x4d,0xf3,0xc6,0x26,0x7f,0xe6,0xee,0xe8,0x50,0xc2,0xbf,0x15,0x28,0x2e,0x5c,0x96,0x34,0x1c,0xfd,0xf9,0x10,0x91,0x66,0x3a,0x45,0x65,0x19,0x49,0x6f,0x2e,0x72,0x05,0x55,0xf9,0x07,0xb2,0x97,0xed,0xfc,0xd8,0x70,0x75,0x4b,0x35,0x3d,0x10,0x13,0xbf,0x18,0xd4,0x5b,0x90,0xb2,0xb4,0x59,0x8b,0xd2,0xf4,0x6a,0x7c,0xb4,0x6f,0x71,0xe1,0x80,0x3e,0x7c,0xd0,0xb9,0x73,0x5b,0x40,0x70,0xff,0xfd,0xea,0xc1,0xd6,0x04,0x25,0xaf,0x48,0x37,0x54,0x36,0xc9,0x61,0x18,0x52,0x1b,0xf7,0x85,0x2c,0xf7};
    static std::uint8_t digest46[32] = {0xea,0xf4,0x0e,0xa7,0x79,0xe9,0xd3,0x81,0xc4,0xc2,0xac,0x3f,0x87,0xfa,0xf7,0x8a,0x99,0x76,0xec,0xe1,0xe3,0x00,0xf1,0xd9,0x8e,0x00,0x0e,0x78,0x37,0xf4,0x34,0x3c};
    ctx.reset();
    ctx.do_final(digest, msg46, sizeof(msg46));
    if (std::memcmp(digest46, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg47[42]    = {0xf0,0xb1,0x4d,0x33,0xa8,0x5a,0x9f,0x0d,0x67,0x9f,0x19,0x79,0xd8,0x10,0x33,0x85,0x43,0xe1,0xcd,0x9d,0xac,0xb2,0x37,0x93,0x8e,0xd6,0xe2,0x65,0x7f,0x5e,0xed,0xbe,0x14,0x29,0x2e,0x38,0xd0,0xf7,0xfd,0xbe,0xda,0xd3};
    static std::uint8_t digest47[32] = {0x0d,0x8b,0xd7,0x0d,0x22,0x27,0x36,0x78,0x7f,0xb8,0x6a,0x08,0x05,0xe1,0x28,0xed,0xb5,0x12,0xd9,0x44,0x53,0xc4,0x27,0x8b,0x11,0x93,0xb1,0x61,0x81,0x46,0x62,0xf3};
    ctx.reset();
    ctx.do_final(digest, msg47, sizeof(msg47));
    if (std::memcmp(digest47, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg48[183]    = {0x8d,0x21,0xaa,0x53,0x01,0x71,0x95,0xbe,0x37,0x07,0xda,0x3c,0xf6,0xdd,0xe8,0xeb,0x2c,0xef,0xbb,0xe9,0x27,0x48,0xfb,0x70,0x09,0xb2,0x42,0x14,0x1f,0x12,0xff,0xc6,0xbb,0xfa,0x50,0x67,0xda,0x2a,0xe0,0xa2,0x60,0x32,0xd8,0xa2,0xff,0x61,0xd4,0x11,0x91,0x18,0x22,0x77,0xdf,0x67,0xde,0x38,0x4e,0xf7,0xe2,0x59,0x02,0xaa,0xcb,0x11,0x6f,0x81,0x19,0xda,0xef,0x50,0xbf,0x64,0x32,0x1f,0x34,0x53,0x69,0x03,0x23,0xc4,0xbb,0xa8,0x92,0x25,0xf3,0x11,0x48,0x8e,0x1e,0x65,0xe4,0xd3,0xb1,0xb7,0x8e,0xf9,0x05,0xd2,0x19,0x43,0xdc,0x88,0x80,0x4d,0x86,0x3d,0xf9,0x5d,0x9e,0xd2,0x4d,0x24,0x83,0x50,0xbc,0x13,0x3e,0xa1,0xde,0x0e,0x10,0x60,0x95,0xd0,0xc2,0xf2,0x00,0x0b,0xdf,0xd8,0x90,0xe8,0x3f,0xaf,0x1a,0x05,0x31,0x39,0x25,0x17,0x8c,0xe7,0x8b,0xd1,0x66,0x8d,0x29,0x64,0x8c,0x42,0xa1,0xd6,0x9f,0x85,0x2f,0xc6,0x47,0x69,0x7a,0x2f,0xf5,0x92,0x38,0x20,0xa6,0x25,0x92,0xf2,0x7f,0x43,0xbd,0xa5,0x8d,0x21,0xeb,0x4a,0xdc,0xe3,0x9d,0xd9,0x31,0x4c,0x13};
    static std::uint8_t digest48[32] = {0x34,0x5b,0x2c,0xde,0x6d,0xf0,0x3d,0x71,0xf0,0x2c,0xd1,0xc0,0x72,0xdd,0x6f,0xd6,0x47,0x76,0xce,0x1c,0xc3,0x64,0x4f,0x94,0x52,0x2d,0x6d,0x6b,0x90,0xaf,0x67,0xac};
    ctx.reset();
    ctx.do_final(digest, msg48, sizeof(msg48));
    if (std::memcmp(digest48, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg49[468]    = {0xb9,0xeb,0xe2,0x12,0x1c,0xbe,0x38,0x64,0xa6,0x28,0x7a,0x1c,0x8d,0xf0,0x4e,0xed,0xea,0xd6,0xe0,0x38,0x80,0x42,0x75,0x10,0xdd,0x6e,0xc3,0x6d,0xd5,0xc8,0x75,0x33,0x11,0xae,0xe2,0x47,0x25,0x6f,0x2c,0xb2,0x01,0x5a,0x43,0x3f,0x17,0x62,0xd6,0xd4,0x8c,0x6d,0xf0,0x57,0x78,0xe2,0x35,0xd3,0x5b,0x5a,0xfc,0xdd,0x82,0x4c,0x03,0x90,0x33,0xfc,0x8e,0xd7,0xe4,0x50,0xb1,0xc1,0x76,0x7b,0x27,0xfc,0x53,0x6d,0x41,0xf5,0xd7,0xc0,0xfc,0x8d,0x5d,0xd6,0x02,0x38,0x1c,0x70,0x7a,0x5c,0x61,0x1c,0x9f,0x96,0x33,0xa2,0x24,0x04,0x32,0x36,0x6b,0xf0,0x08,0x9d,0xa0,0x8c,0x6d,0x73,0x26,0x42,0x39,0xe2,0x2f,0x1d,0x1d,0xbf,0xd9,0x41,0x29,0x20,0x57,0x43,0x61,0x49,0xbe,0x09,0x6a,0x7d,0xde,0x49,0xbf,0x7f,0x9f,0x36,0x7f,0x59,0xc4,0x21,0xba,0x66,0xd4,0xd0,0x99,0x7e,0xc3,0x0b,0x80,0xa8,0xc1,0x4a,0xd9,0xf4,0xab,0x6f,0x67,0x13,0x2c,0x8e,0x5c,0xab,0xc2,0xd1,0x4d,0xd0,0x09,0x66,0xd6,0x5c,0x58,0x59,0x60,0x79,0x16,0xa3,0xe7,0x80,0x6f,0xa2,0x0e,0x48,0x55,0x68,0x34,0x70,0x8d,0x70,0x91,0xd3,0xf4,0x44,0x65,0x9d,0x08,0x19,0x78,0xb9,0xe6,0xce,0xf2,0x16,0x84,0xb6,0xfb,0x7c,0x41,0xb7,0xbc,0x90,0x29,0xa1,0x0f,0x84,0x66,0xc4,0x6f,0x85,0x4e,0x5b,0xe8,0x17,0x13,0x11,0xdb,0xe4,0x6a,0x21,0xca,0x9c,0x9a,0xa5,0xbf,0x2b,0x1f,0x42,0x79,0x43,0x46,0x2b,0x92,0xf0,0x5d,0x90,0xf5,0x70,0x39,0x62,0xd5,0x5d,0xc1,0x90,0xc5,0x62,0x0b,0xa1,0xa4,0x5d,0x0d,0x71,0xc4,0xb3,0x22,0xf0,0x0a,0x76,0xef,0x23,0x0f,0x2d,0x48,0x46,0x0e,0xd1,0xf9,0xa9,0x42,0x04,0xad,0x58,0x7e,0x17,0x60,0x69,0xae,0xe6,0x53,0x90,0x85,0x00,0x79,0x75,0x00,0xd4,0x20,0x39,0x66,0x1e,0x97,0x10,0x5b,0xa8,0x94,0xb1,0xcd,0x55,0x00,0xdc,0x7a,0x45,0x74,0x60,0x63,0xfe,0x2b,0x1c,0xc6,0xe0,0xee,0xf6,0x21,0x8b,0xf4,0x32,0x6e,0xa0,0x6c,0x17,0xbb,0xc4,0xbf,0x30,0xa4,0x0f,0x46,0xc2,0x16,0xec,0x15,0x48,0xea,0x4a,0x4c,0x16,0xf4,0x4d,0x2e,0xf6,0xa0,0x1e,0x71,0x21,0xfb,0xa5,0xb0,0x32,0x85,0xae,0x86,0x05,0xb3,0xc0,0xe8,0x2d,0xa9,0x1e,0xfe,0x11,0x98,0x9e,0xe7,0x46,0xd5,0x3c,0xa5,0x14,0xe4,0xfb,0x6b,0xaf,0x4f,0xe8,0x65,0x91,0xf4,0x98,0x5d,0x0a,0xd2,0x95,0xc9,0x1f,0x28,0x09,0x15,0x2e,0x41,0xe9,0x0a,0xbb,0x10,0x81,0xe4,0x51,0x1a,0x55,0x54,0x62,0x63,0xa3,0xc6,0xf8,0xec,0xc1,0x90,0x66,0x68,0xac,0xfa,0x6a,0x97,0x4e,0x7a,0xf2,0x4f,0x3f,0x35,0xde,0xfb,0x91,0x0a,0x66,0xbc,0x91,0xb3,0x9e,0x96,0x54,0x39,0x10,0xa1,0x12,0xb1,0xaa,0xf4,0xc0,0x42,0x6c,0xaa,0x67,0x48,0x56,0xad,0x6a,0x04,0x7f,0xcc,0x60,0x1d,0x5b,0x03,0xeb,0x2a,0x62,0x1e,0xcf,0x3c,0x86};
    static std::uint8_t digest49[32] = {0xf0,0xde,0x8e,0x8d,0xe8,0x27,0x81,0x4b,0x4b,0x6f,0x1a,0xc8,0xa2,0x5f,0x24,0x9a,0x34,0x59,0x84,0xcb,0x38,0xc3,0xfd,0xdb,0x16,0x9b,0xa3,0xe7,0xbc,0xad,0x27,0xd7};
    ctx.reset();
    ctx.do_final(digest, msg49, sizeof(msg49));
    if (std::memcmp(digest49, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg50[255]    = {0x97,0x3c,0x57,0xe2,0xe0,0x51,0x86,0x56,0x34,0xe2,0x67,0x39,0xd7,0x98,0x4c,0xb4,0xa7,0xaa,0x0b,0x9d,0xff,0x58,0x5d,0x23,0x44,0x1b,0x94,0x7e,0xec,0xb2,0xf1,0xf0,0xd5,0xc1,0xa1,0xba,0xf3,0x55,0x8e,0x38,0xb0,0x34,0xe1,0x64,0x54,0x67,0x4a,0x9c,0x69,0x42,0xac,0x51,0xfb,0x66,0x6f,0xea,0x54,0x6e,0x64,0xc9,0x4b,0x83,0x84,0x74,0x43,0x56,0xec,0xdb,0xfe,0x58,0xeb,0xc5,0x53,0xc3,0x94,0x6f,0x2e,0x6f,0x36,0x51,0x90,0xe0,0x45,0x08,0xda,0x2e,0x4b,0xb2,0x9e,0xbb,0x07,0x28,0xc3,0xd1,0x89,0x6b,0x17,0x1f,0x3d,0x34,0x86,0xf0,0x2d,0x08,0xe1,0x2c,0x76,0xae,0xcf,0x5d,0x00,0x9a,0x67,0x36,0x94,0x92,0x6c,0xdb,0x1a,0xbd,0xa1,0x43,0xa6,0x3f,0xce,0x2b,0x03,0xfd,0xa7,0x51,0x0f,0x55,0xf1,0x6f,0xfe,0x17,0x55,0xa1,0xe7,0x1d,0x09,0x79,0xe0,0xb8,0xc4,0xee,0x88,0x81,0x15,0xde,0x96,0xb9,0x55,0x9f,0xf6,0xf8,0x49,0x29,0x57,0x7e,0x67,0x3b,0x5b,0xb3,0x09,0x2b,0x10,0x47,0x16,0x45,0xfe,0x84,0x7f,0x24,0xa2,0xde,0x12,0x5d,0x40,0xe9,0x88,0xf9,0x83,0x82,0x9e,0x4f,0x33,0x18,0x1e,0x31,0xc9,0x57,0x04,0xb9,0x4e,0xa2,0xf0,0x68,0x1d,0xb2,0x45,0xdd,0x24,0x1b,0x4a,0x50,0xa9,0x72,0xe4,0x69,0xc7,0x3a,0x63,0xef,0x0b,0x5d,0xee,0x23,0x8a,0xf7,0x70,0xdf,0x9d,0x64,0xfc,0xf2,0x60,0xd6,0x97,0x05,0x9e,0x19,0x66,0x6c,0x0b,0x2b,0xe7,0x9d,0xae,0x14,0x52,0x04,0x4a,0xe1,0x00,0x22,0x7d,0x73,0xe9,0xc2,0x11,0x69,0xa1,0xbf,0xef};
    static std::uint8_t digest50[32] = {0x07,0x6b,0xac,0x2a,0xed,0x5b,0x57,0xdf,0x3d,0xe1,0x6b,0x84,0x02,0x54,0xf2,0x98,0x18,0x34,0xe4,0x70,0xd8,0x87,0x2a,0x4a,0xb1,0x2d,0xf8,0x58,0x30,0xd9,0x96,0x52};
    ctx.reset();
    ctx.do_final(digest, msg50, sizeof(msg50));
    if (std::memcmp(digest50, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg51[364]    = {0x76,0xc7,0xd8,0xdb,0xd9,0x0a,0x97,0x58,0xb0,0x15,0x73,0xb6,0x49,0xdd,0xd3,0x81,0xbd,0xb8,0x76,0xd4,0xee,0xa9,0x1a,0x4c,0x2f,0x94,0x05,0x07,0xc4,0xcc,0x64,0x70,0xc8,0x03,0xe7,0x84,0xad,0xab,0x83,0x6f,0x52,0x67,0x1e,0x11,0xac,0xa2,0x01,0x66,0xea,0xad,0x0d,0x6d,0xbf,0xec,0x1a,0x33,0xfa,0x5b,0x6f,0xa2,0xc5,0xd5,0xbc,0xaf,0xbb,0x61,0x72,0x58,0xdc,0x54,0xf7,0x8e,0x1a,0x07,0x9d,0x74,0x30,0x74,0x40,0xf0,0xe4,0x14,0x1c,0xa4,0xdf,0x83,0x0b,0x59,0x7f,0xda,0x8d,0x79,0x7b,0x17,0x28,0xdf,0xdd,0x1f,0x69,0xc1,0x12,0x1a,0x37,0x58,0xc8,0xb9,0xe2,0x7f,0xa3,0x4d,0x0c,0x4e,0x1c,0x9a,0x9f,0xec,0xee,0x7e,0xd6,0x02,0x78,0xf1,0x74,0xce,0xf5,0xfe,0x90,0x2d,0x51,0x2c,0x12,0xad,0x0b,0x9f,0x76,0x73,0x72,0x2b,0xc8,0x53,0x08,0x70,0xf7,0x6a,0x81,0xcf,0xdf,0xc6,0x47,0xaa,0xbf,0x92,0x49,0x80,0x36,0x5b,0xf5,0x86,0x8b,0x3d,0x69,0x7b,0x21,0x7c,0x06,0x54,0xc9,0x30,0x50,0x41,0xf0,0x29,0x1a,0x42,0x64,0xf4,0x73,0xa9,0xce,0x8a,0x27,0xc1,0x91,0x74,0x81,0xf7,0x23,0x16,0x38,0x9e,0x9d,0xd0,0xd4,0x9c,0x65,0x1f,0x66,0x50,0xe6,0x7e,0xe7,0x23,0x66,0x02,0xac,0x52,0x08,0xe1,0x57,0xe8,0x2c,0xbd,0x1c,0x87,0x70,0x63,0x44,0x31,0x42,0x1c,0xed,0x4b,0xd8,0xcf,0xe4,0xd6,0xc6,0xdc,0xbf,0xfd,0x9d,0xb8,0xad,0xee,0xe7,0x15,0xdd,0x67,0xb1,0xbb,0x04,0x70,0xc5,0xe0,0x10,0x85,0x1e,0x3c,0x8d,0xe8,0x8d,0xfa,0x85,0x91,0xd3,0xd8,0xf5,0x40,0xe8,0x7e,0x59,0xca,0x4f,0x5b,0x73,0xe3,0x99,0x47,0x62,0x82,0x8d,0x17,0x1c,0x0d,0xc8,0xc5,0x5c,0x14,0x62,0x30,0xa1,0x18,0xfb,0x68,0xb4,0xe7,0x97,0xb7,0x33,0xcf,0xc7,0xea,0xc9,0x99,0xd4,0xdd,0x39,0xa7,0x81,0x25,0x77,0x14,0x66,0xa2,0x56,0x88,0x9e,0x4f,0xcd,0xd8,0xe9,0x34,0x3b,0x36,0x6d,0xb8,0xe4,0x10,0x0e,0xd0,0x41,0x16,0x47,0x59,0x2b,0xd5,0x53,0xc9,0xc4,0x96,0x09,0xab,0x74,0x86,0x84,0xb1,0x28,0xa5,0x35,0x51,0x44,0x91,0x69,0x3f,0xbf,0x45,0x92,0x84,0x5b,0x05,0x13,0x9d,0xaf,0x6a,0x49,0x14,0x62,0x45,0xf7,0xd8,0xe6,0xa4,0xe9,0x79};
    static std::uint8_t digest51[32] = {0xd2,0x15,0x36,0x43,0x2e,0xe7,0x33,0xc1,0xa3,0xd1,0x35,0xfb,0x68,0x5d,0xd6,0xae,0xc9,0xfe,0x5b,0x26,0x79,0x6b,0xf5,0xb4,0x45,0x3b,0x13,0x6c,0xaf,0xfa,0xf8,0x7f};
    ctx.reset();
    ctx.do_final(digest, msg51, sizeof(msg51));
    if (std::memcmp(digest51, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg52[269]    = {0x97,0x6f,0x38,0xfa,0xb0,0x31,0x77,0xd7,0x6e,0x4f,0xc1,0xe0,0x4c,0xc3,0x42,0xe3,0x8f,0x8e,0x8f,0x27,0x10,0x79,0x54,0xf5,0x57,0x82,0x00,0x6e,0x9e,0x82,0x7a,0xcc,0x34,0xc0,0x8e,0xba,0x2a,0x40,0x59,0x8b,0x67,0x99,0xfb,0x72,0xb2,0xc7,0x20,0x6f,0xfa,0xcd,0xe4,0xcf,0xe3,0x39,0x20,0xe9,0x5a,0x9f,0x90,0xfe,0x0c,0x84,0xe6,0xbe,0x74,0xce,0x5e,0x6c,0x06,0xc5,0xed,0xb7,0xfa,0xd7,0x02,0x2e,0x56,0xbc,0x7f,0x9e,0x27,0xf4,0x43,0x27,0x73,0x20,0x6d,0x33,0x62,0x1e,0xeb,0x50,0x14,0x1e,0x61,0x73,0x55,0xbf,0x44,0x84,0x68,0x35,0xb0,0xc5,0x0c,0x44,0x48,0x43,0x43,0x2c,0xaf,0x85,0x4f,0xd1,0x01,0x9c,0x65,0x9c,0xa7,0xd3,0xb1,0x5b,0xfe,0x5f,0x19,0xd3,0x3b,0x49,0x02,0x20,0x2a,0x71,0xfc,0xaf,0xab,0xf0,0x92,0x60,0xb9,0xbf,0x93,0xc2,0x66,0xad,0x1e,0x79,0xf5,0x69,0x71,0x08,0x10,0x94,0x83,0x62,0xe4,0xac,0xde,0x09,0xec,0x54,0x56,0x91,0xa3,0x32,0xda,0x40,0x59,0x8b,0xf8,0x90,0x2a,0x69,0x0b,0x37,0x9c,0x42,0x99,0x61,0x12,0x06,0xa6,0x57,0x22,0xf7,0xc6,0x47,0xa8,0xbc,0x14,0x65,0x4a,0xb9,0x6a,0x1e,0xed,0x75,0xe4,0x02,0x3c,0x3c,0x8c,0xcf,0x55,0x5d,0x97,0x16,0xe0,0x6b,0x9a,0x83,0x8d,0x41,0x23,0xb1,0x7e,0xb9,0x16,0x24,0xe6,0xe3,0x1e,0xe2,0xd1,0x41,0xed,0x0b,0x85,0x83,0x6a,0xc0,0x36,0xf8,0x3f,0x0a,0x02,0xc1,0x3b,0x40,0xfc,0x4b,0x70,0xf0,0x62,0x90,0x9a,0x99,0xec,0xa3,0xb2,0x54,0x6e,0xeb,0x19,0xa3,0x99,0x51,0xc4,0xf4,0x51,0x5d,0x3f,0x42,0x96,0x21,0xca,0x84,0x01,0x37,0x66};
    static std::uint8_t digest52[32] = {0x5d,0x4f,0x0c,0x17,0xdd,0xff,0x58,0xf2,0x32,0xea,0x49,0x7c,0xe1,0x6c,0xfb,0x6a,0x44,0x90,0x53,0x33,0x06,0xe2,0x9b,0x52,0x0b,0xac,0xb1,0xd8,0xd1,0x7c,0xc8,0xe8};
    ctx.reset();
    ctx.do_final(digest, msg52, sizeof(msg52));
    if (std::memcmp(digest52, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg53[305]    = {0xba,0x65,0xa8,0x4f,0xed,0x43,0x1a,0xd3,0x8c,0x67,0xd6,0xba,0x69,0x88,0x5d,0x1a,0xed,0x44,0x3b,0xa2,0xfa,0x4a,0x09,0x45,0x0f,0x95,0xc3,0xa6,0x57,0x1f,0xda,0x52,0x0a,0xf9,0x6e,0x8a,0x82,0x06,0x33,0xf1,0x3e,0x3a,0x8e,0x7e,0xaa,0x5a,0xf4,0x4d,0xd1,0x69,0x64,0xc5,0x9a,0xf3,0x7d,0xb3,0xaa,0x80,0xfa,0xda,0x02,0x04,0xe2,0x24,0x99,0xc3,0xe8,0x4c,0x41,0x82,0x06,0x69,0x6c,0xf3,0x8b,0xca,0x7e,0x39,0x76,0x3f,0x3e,0xa4,0x6d,0x1f,0x5d,0x9b,0x20,0x81,0xce,0x7a,0x9c,0xee,0xb3,0x39,0x5d,0xfb,0x1e,0x3a,0x84,0xb4,0x2e,0x1e,0x1e,0xf6,0xbd,0xe6,0xee,0x92,0x8a,0x57,0x83,0x91,0x51,0xe8,0x22,0xc1,0x56,0x74,0xee,0x45,0x6c,0x7a,0x65,0x15,0x3b,0xf6,0x40,0x37,0xe1,0xd4,0x84,0x92,0x78,0x7e,0x8e,0x69,0xb6,0x0b,0x49,0xa0,0xab,0x2f,0x6b,0xed,0x47,0xb7,0x66,0x80,0x3c,0x78,0xed,0xce,0xdd,0xa8,0xa9,0x87,0xff,0x9f,0xb7,0xd4,0x4f,0x96,0x64,0xa5,0x93,0xad,0x68,0xd1,0xa1,0xac,0x13,0xa3,0x8e,0xbe,0x8f,0x0f,0xae,0x46,0xd8,0x6a,0x99,0x82,0x78,0x35,0x2d,0x3b,0xc9,0x8a,0xfc,0xa3,0x22,0x35,0x6b,0x38,0xad,0x79,0x28,0x3e,0x9f,0x50,0xd0,0x42,0x79,0xde,0xf0,0xc8,0x08,0x49,0x11,0x7d,0xda,0x7b,0xaf,0x3e,0x89,0x04,0x9a,0x5b,0xef,0x1a,0xed,0x37,0x02,0x84,0x66,0x90,0x0a,0x78,0x70,0x61,0x46,0x91,0xd3,0xd4,0x53,0x59,0xae,0x49,0x9c,0xfc,0xa0,0x01,0xae,0x02,0x4d,0xb6,0x9f,0x94,0x26,0x2e,0xdb,0xd4,0x71,0x9d,0x6e,0x72,0x5a,0xa9,0x8f,0x66,0x8d,0xf8,0xda,0xee,0x8f,0xc8,0x2d,0x07,0xe2,0x39,0xa2,0x3c,0xb1,0xef,0xe6,0x68,0x78,0x41,0xdf,0x84,0x72,0xd6,0x6b,0xe5,0x29,0x27,0xfb,0x44,0x4a,0x17,0xaf,0x1c,0x79,0xa8,0xca,0x96,0x14,0x61,0x74,0x46,0x63,0x15,0x03,0x8b,0xba};
    static std::uint8_t digest53[32] = {0xc9,0x97,0x2c,0x36,0x08,0xf2,0xbe,0x9b,0xe9,0xd8,0x09,0x19,0xee,0x7b,0x87,0x4d,0xc8,0xf8,0x87,0x2a,0xd0,0x13,0x83,0x1e,0x5b,0x19,0xed,0x3a,0x84,0x82,0x1c,0x1b};
    ctx.reset();
    ctx.do_final(digest, msg53, sizeof(msg53));
    if (std::memcmp(digest53, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg54[213]    = {0x2d,0x8c,0x7b,0x86,0xb7,0xf0,0x96,0xfe,0x17,0xd7,0x66,0x0f,0x5c,0x9e,0xac,0x15,0x13,0xcb,0x17,0x9d,0x5b,0x3d,0xed,0x73,0x7c,0xaf,0x43,0xfe,0xde,0x82,0xae,0xdb,0x5f,0xef,0x62,0x9a,0x4b,0xa9,0x7b,0xb1,0x57,0xd6,0x09,0x74,0x48,0x30,0x6d,0x96,0xb7,0x16,0xaa,0x2e,0x5c,0x2f,0x88,0x79,0xad,0x08,0x44,0x7d,0x80,0x0b,0x5a,0x1e,0x63,0xff,0x52,0x5c,0x90,0xbe,0xea,0x4d,0x7a,0x00,0x16,0x45,0x88,0x2f,0x1b,0xfa,0x3e,0xc6,0x8e,0x11,0x5f,0xaf,0x14,0x4e,0xa8,0xef,0xe2,0x96,0x68,0x0c,0x49,0xcb,0x0f,0x5b,0x79,0xe3,0xa0,0x93,0x92,0xd3,0x7c,0xac,0xa8,0x6c,0x10,0x8b,0xc9,0x88,0x0b,0x4f,0xd5,0x04,0xc8,0xa0,0x68,0xb7,0xd3,0xe1,0x30,0xe0,0x37,0x15,0xb0,0xf4,0x6e,0x10,0x5f,0x9a,0x72,0x8f,0x6e,0xc5,0x8e,0xff,0x34,0xe7,0xa4,0x30,0x57,0x45,0x70,0xff,0xa3,0x85,0xf2,0xeb,0x14,0x12,0x8c,0x30,0xff,0x82,0xe4,0x97,0x48,0xd1,0x8f,0x8b,0xcc,0xda,0x39,0xa7,0x2d,0x66,0xf2,0xc7,0x6c,0xf0,0x3d,0x1a,0x8c,0x8b,0xb8,0x7e,0x58,0x71,0x60,0xd8,0x6c,0xa7,0x15,0x3b,0x76,0x7d,0xa6,0x83,0x88,0xf2,0xe1,0xe3,0x72,0xbb,0xf2,0x74,0x35,0x7b,0x50,0xdf,0x29,0x0a,0x28,0xfb,0xe6,0x08,0x8f,0x53,0xed,0xf1,0xf4};
    static std::uint8_t digest54[32] = {0x5b,0xcf,0x39,0xe4,0x5a,0xbb,0x7a,0xb7,0xc8,0x6e,0x9a,0x5e,0x69,0xbc,0x9e,0x33,0xd4,0xef,0x45,0x0e,0x19,0xae,0xcb,0xe2,0xa7,0xc2,0x79,0x2d,0x79,0x56,0x8c,0x27};
    ctx.reset();
    ctx.do_final(digest, msg54, sizeof(msg54));
    if (std::memcmp(digest54, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg55[259]    = {0xe8,0xf1,0xa9,0xe5,0x34,0x59,0x3c,0xc2,0xa5,0x87,0xf7,0x8a,0xb7,0xf5,0x19,0x1e,0xc3,0xa2,0xda,0x59,0x6e,0x2d,0x50,0xe5,0x4b,0xcd,0xf0,0xac,0x2e,0x8d,0xbd,0x0d,0x40,0x32,0x0f,0x28,0xf0,0xdf,0x82,0x55,0xfd,0x05,0x6c,0xa5,0xf9,0xc3,0xc3,0x06,0xfb,0x85,0x9d,0x1d,0x33,0x29,0xa0,0xeb,0x3a,0x97,0x6d,0x9e,0x30,0xb4,0x37,0x8e,0x28,0x63,0x25,0xdd,0xd4,0x71,0xf5,0x0f,0x68,0x3f,0x16,0x66,0xa2,0x57,0xc5,0x47,0x05,0x79,0xa6,0xba,0x4c,0x91,0x0c,0x28,0x18,0x44,0x14,0x07,0xb9,0x1d,0xfb,0xa2,0x43,0x56,0x28,0x20,0x58,0xf6,0xcb,0x6e,0x79,0x78,0x91,0x7e,0x7e,0xc6,0xa6,0x42,0x09,0x43,0x1f,0xd3,0x83,0x01,0xb5,0x29,0x30,0x4d,0xf3,0x7a,0x0d,0x4f,0x0d,0x96,0xda,0x3e,0x85,0x84,0xde,0x9a,0xf5,0x39,0xac,0xa9,0xb5,0x2e,0x09,0xd1,0xe3,0xe1,0x34,0x22,0xed,0x1b,0x48,0x61,0x74,0x03,0x30,0x5e,0x25,0x90,0x2b,0x90,0x44,0xa1,0xcd,0xc0,0x9f,0x8e,0xf4,0x9b,0x92,0x52,0x94,0x9c,0xdc,0x9e,0xb3,0xa1,0x89,0xe4,0xb8,0xef,0x5c,0xd0,0xfd,0x5b,0x69,0x67,0xa7,0xc7,0x1d,0xbf,0xab,0xac,0x8e,0x5b,0xcb,0xfe,0x39,0xa8,0x8b,0xea,0x14,0xa7,0x31,0x30,0x9c,0x20,0x76,0xb0,0x56,0xaf,0x99,0x55,0x83,0xd5,0x60,0x59,0x38,0x58,0x57,0x2d,0x21,0x84,0x12,0x0e,0x3d,0x84,0x0f,0x5c,0xd6,0xaa,0x81,0x68,0xcb,0x5c,0x33,0xef,0x83,0xf3,0x04,0xc8,0x75,0xf8,0x19,0xa7,0xdc,0xce,0x40,0x9c,0xea,0x7a,0xfc,0xf4,0xfd,0x86,0x20,0x27,0xb5,0x6d,0xbe,0x2b,0xd1};
    static std::uint8_t digest55[32] = {0x7d,0xc9,0xd6,0x00,0xd2,0x76,0xde,0x29,0x32,0x25,0xda,0x63,0x80,0x5a,0x13,0x80,0x74,0x97,0xfd,0xd5,0x20,0x0f,0xac,0x76,0xf3,0x75,0x97,0xb6,0xd6,0xa7,0xb8,0xdb};
    ctx.reset();
    ctx.do_final(digest, msg55, sizeof(msg55));
    if (std::memcmp(digest55, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg56[230]    = {0x9e,0x4f,0xc7,0xc0,0x47,0x8d,0x57,0x0e,0x59,0xe1,0x31,0x5c,0x21,0x9d,0x9d,0x2e,0xa8,0x31,0xb7,0x6d,0x4a,0x1f,0xc1,0x10,0x46,0x3c,0xa9,0x65,0x7b,0xc3,0x86,0xca,0x48,0x3e,0x90,0xa8,0xb5,0x46,0x36,0xed,0xf9,0x0a,0xda,0x33,0x7e,0x8d,0x9c,0xae,0xa0,0x40,0x61,0xfd,0xbf,0x76,0xfb,0x22,0xf8,0xa4,0x84,0x1c,0x6c,0xa9,0x9a,0xba,0x3f,0x17,0x88,0x58,0x88,0x90,0x74,0x46,0x4e,0x7b,0x39,0x4a,0x8f,0xef,0x47,0xbf,0x5e,0xb6,0x56,0xb4,0x52,0xe5,0x21,0x9f,0xc0,0x65,0x10,0x53,0xbb,0x5c,0xac,0x59,0xe3,0x76,0x19,0x86,0xbd,0x6a,0x61,0x3b,0xc5,0x34,0xa7,0x72,0x33,0xcf,0x07,0xa8,0x8b,0xd9,0x37,0x38,0x09,0x08,0x88,0x87,0x94,0x38,0x20,0x44,0x9d,0x76,0x7f,0x1c,0xf3,0xc4,0x22,0x71,0x7b,0x53,0xf4,0xce,0x8e,0x5d,0x2f,0xc5,0x34,0x83,0x65,0x86,0x60,0x4b,0xe3,0xc5,0x97,0xce,0x56,0xec,0x48,0xae,0x52,0xf9,0x54,0x9a,0xe5,0x31,0x0a,0x12,0xe0,0x76,0x9e,0xa3,0xed,0x33,0xc9,0x62,0x1e,0x91,0xac,0xaa,0x4d,0x65,0x28,0x55,0x1d,0xbc,0x72,0xb4,0xe6,0x13,0x5c,0xa6,0xdc,0x64,0xf2,0x2d,0xab,0x2c,0x95,0xd1,0xdc,0xe6,0x75,0x2c,0xa3,0x73,0x91,0xbb,0x3a,0xfd,0x23,0x46,0x6b,0xe3,0x34,0xda,0x4e,0xe3,0xb4,0x64,0xbe,0xf8,0x50,0x78,0xe5,0x0b,0xd5,0xaa,0x60,0xf0,0x63,0x29,0x17,0xde,0x88,0x99};
    static std::uint8_t digest56[32] = {0xa3,0xd1,0x69,0x44,0x43,0xd9,0x3f,0x17,0xd5,0xa5,0x07,0x2f,0x59,0x62,0x8b,0xbd,0xa9,0xf6,0xbd,0xe9,0x13,0xba,0xc7,0xaa,0x5e,0x7c,0xd8,0x83,0xf8,0x03,0x71,0x3b};
    ctx.reset();
    ctx.do_final(digest, msg56, sizeof(msg56));
    if (std::memcmp(digest56, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg57[418]    = {0xfe,0xa4,0x57,0xdb,0xf4,0x08,0x7c,0xd4,0x51,0x2c,0xae,0x09,0x60,0x24,0x9a,0x71,0x8c,0xe3,0x74,0x86,0xe2,0xb8,0xf5,0xc4,0xab,0x1a,0xa2,0xd6,0x81,0x12,0xc2,0x9c,0x74,0x14,0x28,0x19,0x89,0x7f,0xef,0x85,0x83,0xcd,0x3a,0x64,0xe2,0x7f,0x70,0xd2,0x3e,0x3a,0x40,0x3c,0x04,0x5a,0xcf,0x1a,0xee,0x26,0x68,0xd4,0x81,0x48,0x2a,0x97,0x56,0x62,0x01,0x07,0xba,0xb1,0xba,0xb5,0x3a,0x81,0x7c,0xa7,0x92,0x94,0x40,0x3b,0xd8,0x89,0x82,0xb7,0x47,0xf8,0x9e,0xe2,0xfe,0x30,0xbe,0x95,0x7f,0x95,0x48,0x2a,0x3d,0x97,0x76,0x3f,0x04,0x26,0xdb,0x53,0xd2,0x0f,0x77,0xa1,0x3b,0x3c,0x8c,0x98,0xf5,0x97,0x60,0x6f,0xab,0x6e,0x93,0x45,0x07,0x30,0xf7,0xed,0x10,0x41,0xe4,0xb1,0xa6,0x03,0xcf,0xd1,0xf8,0x3a,0x34,0x7d,0x1d,0x7b,0x80,0x73,0xbf,0x34,0x0a,0x88,0xc0,0x40,0xeb,0xf6,0x56,0xb2,0x2d,0x5c,0x2c,0x06,0x2b,0x9a,0x56,0x60,0xd9,0x25,0x99,0x81,0x7f,0xc1,0xa0,0x22,0xe5,0xd9,0x73,0x4d,0x76,0x30,0x7e,0xdb,0x02,0x57,0x88,0xdb,0x3a,0xf3,0x07,0xff,0xb0,0xbe,0x8a,0x20,0xa0,0xdf,0x63,0x27,0x30,0x6d,0x3d,0xeb,0x20,0xbc,0x59,0x84,0xf2,0x3d,0x72,0x82,0x23,0x96,0x4b,0x13,0x4d,0x18,0x10,0x9d,0x64,0xed,0xcd,0x88,0x62,0x75,0x2a,0xa0,0xcb,0xd1,0x00,0x25,0x49,0xc9,0xbc,0x35,0x69,0x03,0x05,0x17,0x0f,0x77,0x1f,0x7f,0x2f,0x89,0x09,0x11,0xeb,0x1f,0xd6,0xd9,0x19,0x5f,0xb0,0x40,0xd1,0x04,0x50,0x2d,0x91,0xcc,0x8c,0x7d,0x65,0xb7,0x1a,0xf4,0x76,0x9a,0x3f,0xc0,0x01,0x8b,0xc5,0xe5,0x63,0xd7,0x88,0xf9,0x13,0xea,0xd4,0x8a,0xa9,0xb5,0x1b,0x7a,0xec,0xaa,0x67,0x59,0x2e,0x5f,0x95,0x81,0x46,0xd9,0x93,0xe3,0xea,0x60,0x24,0x04,0xa4,0x87,0xd0,0x77,0xf9,0xee,0x5e,0xc2,0x52,0x5c,0x9f,0x7f,0xc5,0x12,0x59,0x81,0x1d,0xb7,0xed,0xc2,0x17,0xfb,0x69,0x32,0x27,0x23,0x4c,0x9c,0x7f,0xf6,0xed,0x46,0x08,0x71,0x4f,0x41,0x58,0x1c,0xd3,0x63,0x69,0xf7,0x02,0x59,0x3e,0xb4,0xb8,0x42,0xd1,0xcc,0x85,0x84,0x9b,0x0c,0xc6,0x41,0xb8,0xc9,0x19,0x03,0xf3,0x47,0xbb,0x42,0xa7,0x26,0xc6,0x59,0x79,0x50,0x4e,0xe0,0x4f,0xf1,0xc5,0x2f,0x89,0x67,0x68,0xc1,0x3a,0xb4,0xa5,0xd7,0x92,0x1c,0x19,0x2a,0x46,0x7b,0x77,0xd1,0x79,0x25,0xad,0xc5,0x16,0xb3,0x93,0x42,0xdc,0xb8,0x03,0x2e,0xec,0x44,0x94,0x8d,0xb5,0x02,0xfa,0xe4,0x06,0x23,0xf5,0xbf,0x98,0xb6,0xe0,0x3e,0x3e,0x13,0xaf,0x12};
    static std::uint8_t digest57[32] = {0xf6,0x6e,0x4c,0xe0,0xa8,0x81,0x8c,0x67,0x14,0x45,0xe9,0xbd,0xd0,0xaf,0x26,0xf5,0xb3,0x61,0x8f,0x3f,0x7e,0x40,0x20,0xed,0x8c,0xc0,0xb8,0xff,0x39,0xc2,0xd3,0xe8};
    ctx.reset();
    ctx.do_final(digest, msg57, sizeof(msg57));
    if (std::memcmp(digest57, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg58[323]    = {0xc0,0xb5,0x66,0x6f,0x0e,0x7d,0xa2,0xba,0xc5,0xbf,0xa1,0x05,0xf0,0x6a,0x00,0x9b,0x76,0x9b,0xb3,0xc7,0x65,0x3d,0xda,0x77,0x41,0xd8,0xc6,0x9b,0xe2,0xa9,0x63,0x25,0x6d,0x6a,0x20,0x29,0xa2,0xb1,0x6f,0xcb,0x8e,0xdb,0x87,0x9a,0x13,0xf4,0x26,0xa1,0xaa,0xf9,0x12,0x92,0xdb,0xe0,0x78,0xb6,0x53,0x09,0x88,0xbb,0xb4,0xa6,0x9e,0x61,0x70,0x8a,0x30,0x27,0x4e,0x49,0x92,0xaa,0x2a,0x11,0x63,0x3d,0x5d,0x78,0x86,0x85,0x5a,0x88,0x6c,0x63,0xc6,0xc1,0x5c,0x36,0x94,0x45,0xb8,0x2d,0x81,0x57,0x84,0x3c,0x2c,0x2e,0x89,0x0c,0x48,0x2e,0x59,0x41,0x62,0x18,0x12,0xf4,0x8f,0x51,0x5c,0xd4,0xcb,0x12,0x35,0x06,0x52,0x80,0xe6,0xa2,0x18,0x89,0xd7,0xed,0x57,0x06,0xa0,0xdb,0xee,0x83,0x08,0xa7,0x47,0x71,0xaa,0x8c,0xfe,0xfe,0x0c,0xf4,0xaa,0xb5,0x36,0x4d,0x88,0xb7,0x91,0xfd,0xfb,0xec,0x94,0xe1,0x69,0xa2,0xf6,0xb8,0xbc,0xa8,0xcf,0x48,0xaf,0xfc,0xcb,0xf9,0x81,0x24,0xa9,0xee,0xed,0xbb,0xe1,0x52,0xd1,0x43,0x26,0xa9,0xa2,0x67,0x27,0x02,0xf6,0x5e,0xc4,0x4c,0x34,0x06,0x73,0x82,0x07,0xd3,0x0f,0x7e,0x0b,0xe2,0x97,0xe1,0x61,0x73,0x8e,0x94,0xac,0x52,0x4c,0x85,0x62,0x1f,0x77,0x7e,0xf6,0x03,0x9d,0xd7,0xbe,0xff,0xe6,0xa7,0xed,0x14,0x54,0x3f,0xd6,0x6e,0x02,0x44,0xde,0x91,0x8f,0x2d,0xe0,0x6e,0x04,0xcd,0xf2,0xa4,0x10,0x1b,0x49,0xdf,0x46,0x48,0x39,0xaf,0x4a,0x4c,0xb9,0xdc,0x93,0x2b,0x7a,0xfe,0xd6,0x10,0xd0,0x25,0xaf,0x0e,0x40,0x28,0x87,0xb0,0x9c,0x4e,0x69,0xc7,0x72,0xc8,0x5b,0x34,0xb0,0xe9,0x7a,0xb8,0xc3,0x58,0x55,0x84,0xde,0xe4,0xf1,0x0f,0xca,0xdf,0xb7,0xd2,0xb9,0xdf,0xf8,0x93,0xbe,0x5c,0x1c,0x3e,0x35,0xec,0x94,0xd7,0x94,0x35,0x1b,0xf7,0x2c,0x1c,0x6b,0x2f,0xd8,0x52,0xb2,0xd0,0x3a,0x3e,0x58,0x3f,0x57,0xac,0x31,0x7a,0x3f,0x0a,0x44,0x00,0xa1,0xec,0xcc};
    static std::uint8_t digest58[32] = {0xf2,0x99,0xc4,0x2b,0x9a,0xf0,0x87,0x73,0xd4,0xdd,0x04,0xcd,0x61,0x4d,0xe7,0xad,0x2a,0xca,0x44,0x5f,0xbf,0x74,0xd0,0xca,0xaf,0x44,0x0e,0x47,0x6b,0x4d,0x3b,0xe9};
    ctx.reset();
    ctx.do_final(digest, msg58, sizeof(msg58));
    if (std::memcmp(digest58, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg59[111]    = {0x5c,0x76,0x13,0x8c,0xa6,0x4e,0x1e,0x38,0x9e,0xfd,0x35,0x2a,0xea,0xda,0x8b,0xde,0x06,0x34,0x10,0x67,0x4c,0x30,0x46,0x91,0x40,0x9c,0xd2,0xb5,0xcf,0xf2,0xd9,0x10,0xd0,0x6a,0xba,0x9e,0x4c,0xa2,0xb6,0xcc,0xad,0xf8,0x44,0xfc,0x32,0xbc,0x34,0xc4,0x8a,0xc8,0x63,0x4e,0x1e,0xab,0xf4,0x9f,0x31,0x42,0x7c,0x75,0x91,0x3c,0xc0,0xd0,0x98,0xb1,0x90,0x9e,0xbd,0xf9,0xca,0xd3,0xbb,0xe3,0xc9,0x9d,0x1a,0x8c,0xd1,0xbb,0x87,0xc4,0x55,0xca,0x60,0x04,0xa6,0xa3,0x2d,0x66,0x7c,0x2e,0x14,0x68,0x46,0xb9,0x5f,0xda,0x20,0x65,0xef,0x57,0xbe,0x7c,0xaf,0x5b,0xec,0x7f,0xe0,0x49,0x3f};
    static std::uint8_t digest59[32] = {0x79,0x1f,0x99,0x42,0xc5,0xb9,0x48,0x53,0x4f,0xa4,0x06,0x58,0xb0,0x37,0xdf,0xae,0x11,0x57,0x46,0x40,0x86,0xf4,0xa5,0xd6,0x18,0xaf,0x85,0xab,0x4a,0x63,0xd2,0xd3};
    ctx.reset();
    ctx.do_final(digest, msg59, sizeof(msg59));
    if (std::memcmp(digest59, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg60[407]    = {0x4d,0xba,0x30,0xed,0x68,0x3e,0xe8,0x11,0x44,0x4c,0xfd,0x51,0x3a,0xb6,0xd7,0xda,0x0d,0xc3,0x29,0x06,0x43,0x5f,0x1f,0xec,0x90,0xf9,0x95,0xf3,0xe8,0x42,0xff,0x3d,0x40,0xde,0x8d,0x97,0xb6,0x69,0x0a,0x34,0xca,0x8f,0xce,0xe6,0x82,0xd3,0x65,0xbe,0xb3,0x28,0x03,0x6c,0xd3,0x83,0x32,0x48,0x46,0xb4,0x40,0x8f,0x95,0x62,0x3f,0xac,0x3c,0x39,0x5c,0x41,0xf0,0xbd,0xb5,0x2d,0x77,0x6c,0x85,0x0b,0x94,0x2e,0xdf,0x79,0xb2,0x5a,0x84,0xaa,0xa3,0xae,0x59,0x97,0x3a,0xd9,0x04,0x42,0xe3,0xa6,0x27,0x94,0x09,0x31,0x57,0xbb,0x46,0xfd,0xff,0x19,0x91,0x78,0xfe,0x91,0x4f,0x7c,0xee,0x62,0x48,0xe8,0xac,0x09,0xa5,0xc0,0x05,0xd7,0x48,0x6f,0xcc,0xb4,0x8d,0x97,0x11,0x9f,0x8a,0xd2,0x36,0xcd,0xd5,0x35,0xf2,0xf2,0xc4,0xca,0xb8,0xf7,0xb4,0x15,0xf6,0x26,0x5e,0x29,0x2e,0x79,0xf1,0x93,0xe6,0x01,0x52,0x50,0x76,0xa1,0xb2,0xb5,0xbe,0x52,0x0c,0xa1,0xf9,0xd3,0x4c,0x4b,0xa2,0x18,0x81,0xb2,0x0a,0xf4,0xdf,0x6f,0x10,0x0e,0x6a,0x81,0xf2,0xaa,0x9a,0x61,0xed,0x78,0xf0,0x43,0xec,0x7c,0x15,0xd8,0xcb,0x02,0x7e,0x5d,0x43,0xe7,0x16,0x1b,0x34,0xdf,0x46,0x9d,0xc7,0xbb,0xfa,0x5e,0x46,0x2c,0xd1,0x0e,0xb4,0xde,0x50,0xe4,0xa1,0xb8,0x11,0x64,0x19,0xdb,0xb6,0x15,0x5b,0xbb,0xa9,0x3a,0x42,0x12,0xbc,0x15,0x48,0x27,0x4c,0xa2,0x0e,0xc6,0x04,0x28,0x40,0x0f,0x71,0xf1,0x7b,0xdc,0x34,0x59,0x29,0x00,0x93,0xdf,0xf1,0xd1,0x25,0xcc,0x18,0xc8,0x44,0x89,0xf9,0x39,0x40,0x31,0x5e,0x61,0x1e,0xd9,0x61,0xa4,0xfa,0x20,0x63,0x9c,0x85,0xaf,0xcb,0xa9,0x73,0xfc,0x50,0x8f,0xbe,0x45,0x4d,0x39,0x96,0xd7,0xde,0xa0,0x4e,0x25,0x1e,0x03,0x35,0x37,0x96,0xf2,0xe4,0x1c,0x99,0x06,0x40,0x33,0xaf,0xb8,0xde,0x4d,0x5a,0xc7,0x83,0xec,0xeb,0x29,0x96,0x41,0xff,0xc8,0x14,0x64,0x69,0x0b,0xc6,0xac,0x16,0xa1,0x5e,0xbc,0xe3,0x2f,0xe4,0xcd,0xb5,0x8f,0xc1,0x09,0x22,0xd1,0x68,0xe6,0x2c,0x57,0xd9,0x81,0x5e,0x3a,0xcc,0xaf,0xea,0x61,0xe2,0x89,0x6f,0x23,0x2d,0x45,0x9a,0x1f,0xd8,0x57,0x97,0xbf,0x50,0xff,0xbf,0xef,0x18,0xf4,0x3a,0x36,0x29,0x18,0x5f,0x1e,0x38,0x8f,0x72,0x78,0x9f,0x36,0xf6,0xa8,0x3b,0x62,0xa9,0xa4,0x60,0xca,0x70,0x35,0xf6,0xc7,0xd8,0x8e,0xcb,0x42,0x41,0xc1,0x10,0x71,0x14,0x63,0x75,0x7a,0x27,0x40,0x33,0xa9,0x9f};
    static std::uint8_t digest60[32] = {0xaf,0xc2,0x00,0xcb,0x80,0x99,0xfb,0x64,0x7d,0x5a,0x13,0xbd,0x09,0x46,0xd0,0xa3,0x5b,0x7e,0x58,0x19,0x7f,0xe1,0x2c,0x56,0x5b,0xa1,0x06,0xa4,0x7a,0x65,0x57,0xf1};
    ctx.reset();
    ctx.do_final(digest, msg60, sizeof(msg60));
    if (std::memcmp(digest60, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg61[351]    = {0x89,0x26,0x06,0xb2,0x00,0xdc,0x33,0x41,0x01,0x20,0xfd,0x17,0x86,0x86,0xf8,0x32,0xee,0x9a,0x37,0xa4,0x67,0xe5,0xa6,0xf8,0x1e,0xa0,0xc8,0x4e,0x2e,0xfe,0xff,0x2c,0x23,0x98,0xfb,0xc0,0x63,0x8a,0x8b,0xaf,0x48,0xb1,0xa6,0xc1,0x39,0xfe,0x73,0x3c,0xf6,0xb4,0x09,0x00,0xf0,0x25,0x96,0x22,0xb6,0xc7,0x76,0xa8,0xef,0x20,0xca,0x87,0xe5,0x15,0x7c,0x33,0xb8,0xf0,0xc3,0x6e,0xf9,0x93,0x8b,0xd6,0xb1,0xc9,0x69,0x84,0x17,0x3a,0xc9,0xd4,0x11,0x67,0x1a,0xb9,0x56,0xfc,0xcc,0xf8,0xcb,0x8c,0x19,0xea,0x93,0x4b,0x9d,0x57,0xf7,0x0a,0x3e,0x6a,0xe6,0x54,0xff,0x5a,0x9e,0x87,0x39,0xaa,0x59,0xc8,0x1d,0x76,0x9c,0xa8,0xf2,0x09,0xff,0x68,0x2f,0x80,0x0f,0xb5,0x44,0x91,0x3c,0xd9,0x73,0xf5,0x8f,0x64,0x29,0x5b,0x90,0x3a,0xc7,0x58,0xd6,0xe2,0x62,0x94,0xaa,0xfe,0xde,0x42,0xc6,0x3a,0x1c,0x55,0x7a,0x88,0x71,0x3f,0xe6,0xce,0xf4,0x7e,0x29,0xe3,0x7d,0xf1,0x17,0xfc,0x53,0xf0,0x4e,0x32,0xd6,0x96,0x0b,0x57,0xfb,0x6f,0x80,0x0b,0x9a,0xb6,0x2e,0x21,0x3b,0xd1,0x28,0x27,0x17,0x28,0xd3,0x0e,0xc2,0x1a,0xd1,0x21,0x09,0x3e,0xaf,0x6c,0xef,0x37,0x1f,0x0f,0xac,0x83,0x8f,0x3e,0x28,0x92,0x57,0xc3,0x45,0x53,0x4c,0xe2,0xcc,0x53,0x4c,0x35,0xa4,0xa0,0x3b,0x8d,0x99,0xd5,0xf9,0x89,0x0b,0x71,0xe7,0x3d,0x62,0x81,0x8c,0xf2,0xee,0x11,0x2b,0x26,0x75,0x7a,0xac,0xe2,0xcc,0x0e,0xb1,0x21,0xe7,0xbe,0x52,0xb2,0x71,0x78,0x9d,0x2b,0xf1,0x0b,0x84,0xaa,0x63,0xaf,0x84,0xbd,0x8f,0xe0,0x5e,0x96,0xb6,0xf0,0xc9,0x16,0x14,0xeb,0xe4,0x10,0x94,0x05,0xdf,0xd5,0x19,0x51,0xdf,0xb7,0x72,0x0a,0xbe,0x19,0x85,0x13,0x69,0xd6,0xd3,0xb1,0xf0,0x1e,0xdd,0x96,0x30,0x73,0xa5,0xb7,0xd6,0x32,0x7a,0xfc,0xcc,0x6c,0xc7,0xcc,0xfb,0xd0,0xe1,0xdc,0x80,0x42,0xfd,0x2a,0xe3,0x59,0x0d,0xbf,0xd8,0x00,0xb6,0xd0,0x8a,0x64,0x7f,0x59,0x5a,0x10,0xb7,0x94,0xb9,0x11,0x60,0x91,0xb5,0x5f,0x3c,0x83,0x3e,0x43,0x23,0x99,0x1f,0x50,0xf0,0x2b,0xfb,0x95,0x3c};
    static std::uint8_t digest61[32] = {0x3c,0x2c,0x64,0x40,0x48,0x9e,0x82,0xad,0xb5,0x43,0x70,0x39,0x09,0x43,0xd2,0x05,0xfe,0x5c,0x03,0x6c,0xd8,0xb1,0x6d,0x16,0x79,0x23,0x5d,0xf1,0xe0,0x14,0xe7,0xad};
    ctx.reset();
    ctx.do_final(digest, msg61, sizeof(msg61));
    if (std::memcmp(digest61, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg62[274]    = {0xca,0x0f,0x65,0xc2,0x6b,0x15,0xbc,0xad,0xb0,0x82,0x0e,0x7b,0x53,0x70,0x13,0x2e,0xe7,0xfb,0xa0,0xfd,0x98,0x23,0xaf,0x20,0xa7,0x8c,0xb2,0x24,0xe6,0xc2,0x0a,0x90,0x67,0xb3,0x01,0xa9,0x0d,0x08,0x3f,0x05,0x87,0xe5,0x5c,0xc7,0xa5,0x06,0x7e,0x9f,0x19,0x22,0x8a,0x0d,0x75,0x32,0x97,0x98,0x55,0x28,0x20,0x75,0xf4,0xe0,0xef,0x11,0xe1,0x4c,0xb2,0x01,0x4e,0xc1,0x65,0x4b,0x87,0xd6,0x44,0x09,0x21,0x32,0x30,0xa4,0xa1,0x29,0xde,0x15,0xa7,0x39,0xff,0xc9,0x3c,0x5a,0x5d,0x00,0x00,0x20,0x2e,0x31,0x84,0xcc,0x84,0x12,0xe7,0x55,0x5a,0x60,0x8a,0x58,0x99,0x73,0x63,0xa2,0x4d,0x78,0x13,0x53,0x48,0xc2,0x3b,0x5c,0x0b,0x22,0xef,0xee,0xf2,0xe7,0x68,0x3b,0x85,0x1d,0x68,0xfb,0x5e,0xd1,0x6c,0xea,0x9b,0x7a,0xc3,0x25,0x3f,0xbf,0x12,0xa4,0x25,0xd5,0x6b,0xcc,0xdc,0xa0,0xb9,0xbf,0x50,0xe7,0xf7,0x56,0xc5,0x72,0xbf,0x80,0x62,0x2e,0xdc,0x78,0x6e,0x8b,0x47,0x10,0x4f,0x7a,0x01,0x1f,0x81,0xdc,0xb3,0xda,0xe4,0xc6,0xbb,0x3e,0x4a,0xd4,0xca,0x81,0x35,0xa5,0x05,0x64,0x1f,0x4b,0x87,0x67,0xbd,0x5e,0x75,0x7f,0xfb,0x1b,0xce,0xda,0xd3,0x73,0x90,0x6a,0xbf,0x99,0x4d,0x24,0xf1,0xb0,0x65,0xc5,0x19,0xa9,0x46,0x72,0xb4,0x38,0xf7,0x7b,0xae,0x24,0xf1,0x84,0xc7,0xa1,0x73,0x08,0x5d,0xf2,0x29,0x29,0x12,0x18,0xb0,0x1e,0xb6,0x14,0xc9,0x55,0xac,0x52,0xcf,0xa9,0x94,0x72,0xa6,0x45,0xf6,0x5f,0x0a,0x58,0x3c,0xa9,0xd8,0xfc,0x45,0xaf,0xf5,0xd2,0x49,0x03,0x38,0xb7,0x1e,0x18,0xab,0x10,0x94,0xdc,0x3e,0xc9,0x0e,0x53,0x09,0x7e};
    static std::uint8_t digest62[32] = {0x9c,0xc3,0x1e,0x0d,0xcc,0xc7,0xff,0x9a,0x90,0xdc,0xf0,0x0e,0xa8,0xd6,0x18,0x22,0x08,0xf8,0x6b,0x40,0x42,0xbd,0xab,0x93,0x5d,0x14,0xf0,0x3c,0xe4,0x24,0x5d,0x86};
    ctx.reset();
    ctx.do_final(digest, msg62, sizeof(msg62));
    if (std::memcmp(digest62, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg63[212]    = {0x26,0xd7,0x14,0x26,0xdb,0xd0,0xb8,0x52,0x79,0xcc,0x41,0x51,0x98,0x0f,0x4f,0x42,0x35,0xb2,0x8c,0x03,0xc5,0x07,0x2e,0x5f,0x19,0xa0,0x84,0xfc,0xe2,0x5c,0x43,0x64,0x1b,0x7a,0x8e,0x11,0x3a,0xf6,0xf4,0xd0,0x17,0x06,0xa6,0xb8,0xe0,0xcd,0x48,0xad,0xe5,0x07,0xd4,0xf2,0xa3,0x47,0xbc,0x01,0xc3,0x9c,0xa7,0x0c,0xb6,0xd2,0x78,0x65,0x0d,0x81,0xbd,0xc2,0xf4,0x52,0xf5,0x34,0xab,0x2f,0x30,0x9c,0x20,0x5b,0xaf,0x47,0x72,0xd6,0xd3,0xf2,0x25,0xa3,0x25,0x63,0xaf,0xe8,0x60,0x8c,0x98,0x3b,0xd2,0x17,0x7a,0x60,0x0e,0xcb,0x50,0xea,0x10,0x5e,0x19,0xf5,0xe5,0x44,0xd2,0x83,0xd0,0xd6,0x04,0xb7,0x93,0xae,0x49,0x9e,0xaf,0xf4,0x78,0x32,0x47,0x1e,0xac,0x58,0xe0,0x95,0xe7,0x25,0x41,0x11,0x38,0x54,0x41,0xed,0x49,0x16,0xbd,0x50,0x31,0xc5,0x03,0x2c,0x09,0x8f,0xd8,0xe8,0xa4,0xb7,0x4e,0x58,0x91,0x38,0xe0,0x0a,0xbe,0xd4,0x63,0xe7,0x68,0x69,0x82,0xfc,0x6b,0x4b,0xc7,0x24,0x56,0xe4,0xf9,0x4c,0xbb,0xc1,0x0d,0xf2,0xba,0x40,0xb6,0xde,0xd1,0xa0,0xb3,0x61,0xfc,0xff,0x9f,0x5d,0xfc,0xfc,0x26,0x50,0xba,0x84,0x0f,0x08,0x30,0x89,0x94,0x5d,0xaf,0xe5,0xb4,0x30,0xb1,0xf6,0xa5,0x36,0x98,0xb3,0x08,0x2a};
    static std::uint8_t digest63[32] = {0xe8,0x20,0xdd,0xc4,0xe4,0xf0,0x89,0x56,0xf0,0x7e,0x1e,0xe5,0x83,0x6a,0x47,0x5a,0x29,0x77,0x52,0x7f,0xbf,0x47,0x95,0x2b,0x1d,0x31,0xda,0x0d,0x21,0xd2,0x65,0xb2};
    ctx.reset();
    ctx.do_final(digest, msg63, sizeof(msg63));
    if (std::memcmp(digest63, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg64[161]    = {0x09,0x72,0x41,0x5b,0x17,0xda,0x90,0xbf,0x1d,0x73,0xeb,0x94,0x97,0x4d,0xf1,0xfa,0x46,0x72,0xb8,0x05,0xf3,0xb6,0x4e,0xc9,0x37,0x24,0xdf,0x6a,0x4e,0x40,0x0d,0x93,0x1c,0x5a,0x43,0x12,0x94,0x85,0xe3,0x68,0x72,0xac,0x62,0x10,0x32,0x09,0x4a,0x4f,0x8b,0x6c,0xcd,0x8d,0x15,0x02,0xad,0x3f,0xc0,0x96,0x49,0xb0,0xa0,0x71,0x65,0x1e,0x3c,0xca,0x74,0xd5,0xc4,0x4f,0xad,0x9a,0x32,0x37,0x78,0x01,0x34,0xff,0x9a,0x7e,0x23,0xc5,0x1a,0x20,0x3f,0xdb,0x55,0x0b,0xce,0x0f,0xe5,0x31,0xb7,0x64,0xb4,0x14,0x8a,0x04,0x23,0xdd,0x1d,0x09,0xfc,0xfe,0xc2,0xc5,0x1a,0xab,0xda,0x01,0x41,0x99,0x23,0x42,0x0b,0x23,0x97,0xdf,0x3d,0xb1,0x79,0xb3,0x8e,0x86,0xa2,0x7d,0x87,0x1e,0x0a,0xfc,0x36,0x1c,0x73,0x04,0x7f,0x17,0x8c,0x0d,0xd8,0x80,0xe2,0x05,0xf4,0x25,0x82,0xde,0x73,0xf4,0x52,0xc3,0xa1,0xc1,0xb9,0x71,0x8f,0xbd,0xa7,0x8d,0x3c,0x51,0x09};
    static std::uint8_t digest64[32] = {0x94,0x42,0x40,0xcd,0xf4,0xa5,0x0f,0xcf,0x3c,0x40,0x67,0xec,0xbe,0x55,0x00,0x58,0xeb,0x46,0xa3,0x92,0xfa,0x8f,0x7b,0xb4,0x05,0x1c,0xed,0xe8,0x5f,0xd3,0x8e,0x8d};
    ctx.reset();
    ctx.do_final(digest, msg64, sizeof(msg64));
    if (std::memcmp(digest64, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg65[71]    = {0xb5,0x51,0x22,0x53,0xe9,0x58,0x17,0x95,0x50,0xb2,0xa2,0xb0,0x50,0xd1,0x87,0x33,0xf6,0x7a,0x93,0x88,0x25,0x2f,0xd6,0x2c,0xba,0x79,0x41,0x63,0xa4,0x6b,0x97,0xba,0xa4,0xb7,0xca,0x2d,0xa3,0x00,0x90,0x2e,0x5c,0xfc,0x57,0x6f,0x6f,0x88,0x94,0xcd,0x4f,0x71,0xb9,0xb4,0x4f,0x5a,0x70,0xed,0xd4,0xb0,0x92,0x20,0x70,0xc5,0xcc,0x28,0xdc,0x10,0xcb,0x18,0xbb,0x90,0xfa};
    static std::uint8_t digest65[32] = {0x3f,0x75,0x15,0x13,0x7b,0x24,0x17,0xb7,0xb4,0x66,0xba,0x39,0x5f,0xf7,0xc2,0x42,0xe2,0x84,0x10,0x6a,0x24,0x1c,0xbb,0xc7,0xfc,0x2f,0xc2,0xf0,0x7e,0x5a,0x33,0xe4};
    ctx.reset();
    ctx.do_final(digest, msg65, sizeof(msg65));
    if (std::memcmp(digest65, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg66[308]    = {0x70,0x44,0x91,0xfe,0xeb,0xdf,0x2c,0x51,0x0e,0xf0,0x0d,0x42,0xd5,0xd0,0x6a,0x3f,0xc4,0xf2,0x5f,0xb4,0x9a,0xaa,0x2e,0xb3,0xa6,0x49,0x7a,0x55,0xcb,0x2d,0x53,0x0b,0x0a,0x2f,0xe6,0xbb,0x13,0xd8,0x6f,0x27,0xad,0xb6,0x1f,0xbe,0x5e,0xbd,0x4c,0xa4,0x0e,0xd9,0x2d,0x8c,0x13,0xf6,0x1d,0x83,0x05,0xaf,0x5d,0x3d,0x5f,0x09,0xc8,0x25,0xfa,0xb6,0x76,0xb5,0xec,0x56,0x8d,0x62,0x90,0x38,0xf1,0xc7,0xfe,0x99,0x7b,0xc4,0x37,0xf9,0x32,0x13,0xc4,0x05,0x6a,0xe7,0x79,0xd2,0x9c,0x4f,0xcd,0x42,0xc3,0x12,0x89,0x5d,0xd6,0xee,0xb6,0x6a,0xf7,0xd6,0xb6,0xfe,0xd0,0x63,0xc7,0xaa,0x7a,0xb2,0x23,0x93,0x2e,0x5d,0xf2,0x8b,0xee,0x7c,0xe4,0xa9,0xec,0xcb,0x6d,0xe9,0x05,0x95,0xaa,0x50,0xc9,0xd3,0x34,0x11,0x47,0xa8,0x74,0x7d,0xee,0x9f,0xb3,0x41,0xbf,0xeb,0xcd,0x76,0xf5,0xd7,0xab,0x04,0xc6,0xb5,0x79,0x7f,0x9b,0x50,0x7d,0x82,0x5e,0x01,0x4a,0x77,0xaa,0xa0,0x9c,0xfa,0x7e,0x94,0x8f,0x2a,0x10,0xe3,0x31,0x8e,0xad,0x15,0xda,0x79,0xda,0x7f,0x2c,0x75,0x57,0xe2,0x95,0xcc,0x9b,0x48,0x8b,0xae,0x53,0x98,0x37,0x55,0x40,0x1c,0x19,0xc1,0xbc,0xa6,0x49,0x37,0xe3,0xb0,0x1b,0x09,0x00,0xaf,0x2d,0x95,0x91,0xff,0xb6,0x7d,0xdb,0x9e,0xf4,0x48,0xb5,0x31,0xc7,0x8b,0x37,0xff,0x40,0xf0,0x79,0xd5,0x37,0x01,0x9c,0x5c,0xb4,0xc1,0x8c,0x8f,0xce,0x88,0x25,0x81,0x90,0x43,0x60,0xf1,0xce,0x91,0x87,0xe0,0x2c,0xd8,0x02,0xbf,0x7d,0x2c,0xad,0x17,0x1c,0x08,0xc9,0x90,0xd5,0xfb,0xbf,0xf1,0x76,0xb0,0x5d,0x99,0x2a,0xd9,0xc4,0xe2,0x07,0xef,0x46,0x29,0x50,0x29,0x81,0xf1,0x9b,0x1d,0x61,0x37,0xb9,0xcd,0xc2,0xeb,0x88,0x60,0xec,0xc4,0x86,0x02,0x63,0x71,0x4e,0x54,0x29,0x1f,0x78,0x53,0x1d,0x02,0x2c,0xc0,0x86,0x73};
    static std::uint8_t digest66[32] = {0xd4,0x50,0x61,0xa3,0xca,0xb1,0x13,0x23,0x27,0x9e,0x1b,0x2a,0x24,0x24,0x27,0x20,0x48,0xf8,0x48,0x6d,0xd1,0xbb,0xd4,0x7a,0x8e,0xb0,0x95,0x9b,0xd5,0x85,0x63,0xa9};
    ctx.reset();
    ctx.do_final(digest, msg66, sizeof(msg66));
    if (std::memcmp(digest66, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg67[95]    = {0x9a,0x42,0xfd,0x9e,0x9f,0xf5,0x59,0xee,0x8d,0xb7,0xdb,0x59,0x3b,0x58,0x08,0x06,0xba,0xb6,0xa2,0x1a,0xbb,0xe1,0x8d,0xfa,0x81,0x34,0x0a,0xf2,0x24,0x09,0xf2,0x5c,0x3a,0xe2,0xf5,0xc6,0xdf,0xc3,0x6c,0x0b,0x52,0xa8,0x30,0xae,0xa0,0xc6,0x78,0xcb,0x6c,0xb5,0x76,0xcd,0x53,0xf4,0xb4,0x1b,0xc0,0x43,0x30,0xe3,0x72,0xfc,0x6e,0xd2,0x9b,0xa8,0xcc,0x60,0x9c,0x03,0x53,0xfd,0x8a,0xe9,0x20,0xdf,0x64,0x01,0x27,0x76,0x96,0x11,0x53,0xc9,0x08,0x16,0xc5,0x2b,0x36,0xd3,0xbd,0x39,0x7d,0x03,0x33};
    static std::uint8_t digest67[32] = {0x20,0x39,0x32,0x2f,0xa4,0x3d,0xa0,0x1e,0x33,0x48,0xda,0x42,0x0c,0x49,0x5c,0x8e,0xe0,0xaf,0xcd,0xf5,0x52,0x10,0x9b,0x10,0x7c,0x50,0xad,0x78,0x4e,0x35,0xe1,0x06};
    ctx.reset();
    ctx.do_final(digest, msg67, sizeof(msg67));
    if (std::memcmp(digest67, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg68[504]    = {0x97,0xca,0xfb,0xb4,0xbe,0x9c,0x61,0x0e,0xeb,0x8e,0xfa,0x7e,0x20,0xfc,0x06,0x3c,0x41,0xe5,0x84,0x59,0x0f,0x2c,0x52,0x53,0x6f,0x91,0xbc,0x6c,0x65,0x3c,0x7b,0x96,0x22,0x2e,0xc2,0x2c,0x89,0x22,0x49,0xcd,0xa6,0xd9,0x05,0x00,0xd0,0x92,0x5d,0x0c,0xb4,0x7f,0xf6,0x41,0x14,0xb1,0x20,0xf0,0xd6,0x69,0x16,0x3a,0x4a,0xb9,0xf4,0x1a,0x1a,0xfd,0x0f,0x5e,0x0b,0xd0,0xec,0xad,0x37,0x2b,0x3b,0x27,0x95,0xc0,0x49,0x5a,0x73,0x69,0x41,0x5d,0xaf,0x27,0xb9,0x75,0xb1,0x8a,0x3d,0x64,0x83,0x14,0xec,0x4c,0x15,0xbe,0x01,0xd1,0xfc,0xd8,0x81,0x91,0xa2,0x23,0x36,0x32,0x8c,0x9b,0xe0,0x7a,0xb2,0x4d,0x91,0x3a,0x51,0x61,0x62,0xd4,0xbd,0xb0,0x95,0xc5,0x39,0x7e,0x65,0xf8,0xd7,0x3e,0xba,0xae,0xd3,0xaa,0xd1,0xe7,0x8f,0x4d,0xe4,0xc9,0x26,0x6e,0x8f,0xf0,0xd1,0xcd,0xca,0xa4,0x3e,0x91,0xa2,0x8e,0x9e,0x5f,0x5e,0x59,0xbd,0xeb,0x36,0x08,0xe5,0x79,0x08,0xcd,0x35,0x92,0x1c,0x09,0xf0,0x7d,0x4e,0x13,0x1d,0x2c,0xeb,0x97,0x64,0x36,0x56,0xdf,0x8f,0xc2,0x19,0x93,0x52,0xfa,0x98,0x42,0xe8,0xb4,0xc1,0xd8,0x39,0x5f,0xd7,0x10,0x05,0x49,0x97,0x64,0x4f,0x91,0x59,0x24,0x41,0xdc,0x68,0x0b,0xe3,0x8b,0x8d,0xfb,0x05,0x98,0xa3,0x8a,0xfc,0x6b,0x1a,0x2b,0xab,0xdb,0x42,0x49,0x07,0x1f,0x67,0x3b,0x58,0xc5,0x30,0x0c,0x77,0x57,0xd9,0x7a,0x3e,0x52,0x7c,0x4f,0x74,0x4a,0x87,0x8c,0xfe,0x5b,0xb2,0x15,0x28,0x60,0x82,0xd1,0x60,0xf9,0x9b,0x15,0xbb,0xe8,0x41,0x14,0x7b,0x15,0x6c,0x6a,0xde,0x79,0x8c,0x84,0x1a,0x08,0xa6,0x6c,0xf3,0x0c,0xcb,0x24,0x12,0xff,0x05,0x4e,0xfc,0x50,0xe2,0x3b,0xc2,0x18,0x9c,0xf1,0xac,0x89,0xbb,0xf9,0xe1,0x42,0x4c,0x12,0xc3,0xa8,0x52,0xf3,0xe9,0xe3,0x78,0x44,0xe2,0xc8,0x4a,0x1d,0xb7,0xeb,0xc9,0xb0,0x84,0x7e,0x9c,0xa9,0x4f,0x5a,0x81,0x98,0x84,0x82,0xfc,0xca,0x75,0x4f,0x32,0xe7,0xef,0x46,0xc4,0xb1,0x83,0x55,0xa3,0xea,0xa9,0xc7,0x3b,0xc9,0x3d,0xae,0x48,0x0f,0x2b,0xc2,0x0b,0x84,0x0e,0x29,0xdc,0xb9,0x10,0xc1,0xce,0x35,0x2c,0xc7,0xe9,0x80,0x6c,0xc8,0xe2,0x2e,0x53,0x93,0x6c,0x92,0xc4,0xfc,0x92,0x21,0x07,0x2d,0x0d,0x20,0xed,0x7a,0xc8,0x36,0x5a,0x45,0x42,0xc6,0x33,0x8f,0xca,0xb2,0x1c,0x64,0x1b,0xf4,0x60,0x96,0x2d,0x07,0xf6,0x13,0xaa,0x26,0x02,0xf4,0xe5,0x69,0x40,0x5a,0x0e,0xd2,0x25,0x03,0xba,0x66,0xa1,0x8f,0x92,0x5f,0xa0,0xf9,0x10,0x4e,0xef,0xaf,0x58,0x6a,0xbf,0x63,0x8f,0xfb,0xf1,0xb1,0x86,0x46,0x43,0x04,0x18,0x64,0x5c,0x6f,0x02,0x85,0xa7,0xe8,0x06,0xd2,0x64,0x2e,0xfb,0x10,0x66,0x91,0xae,0x6d,0x23,0x05,0xe5,0x31,0x07,0xda,0x95,0xd9,0x6e,0xb1,0x6a,0xb1,0x14,0x0f,0xce,0x16,0xeb,0xf4,0xac,0x1e,0xbf,0x8f,0xfe,0x34,0x5f,0x31,0x65,0x67,0xf6,0x5a,0xb5,0xc6,0xc1,0x4e,0x38,0xa2,0x91,0x55,0x7c,0xe6,0x3c,0xd1,0x56,0x86,0x2f,0x6a,0x1d,0x18,0x7b,0x90,0x41,0xab};
    static std::uint8_t digest68[32] = {0x0f,0x1c,0xac,0x35,0xb1,0x0d,0x86,0x4d,0xf0,0xcc,0x01,0x50,0x67,0x71,0xb1,0x48,0x5a,0x7a,0x4a,0xc9,0xce,0x9e,0xeb,0x3b,0x34,0xd7,0x10,0x7f,0x88,0x8d,0x42,0x63};
    ctx.reset();
    ctx.do_final(digest, msg68, sizeof(msg68));
    if (std::memcmp(digest68, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg69[338]    = {0x52,0x74,0x87,0x3a,0x78,0xcd,0x89,0x37,0x11,0xb1,0x01,0xfb,0x90,0x83,0x1d,0xd9,0x9c,0x12,0xaa,0x70,0x09,0x25,0x60,0x2f,0xeb,0x3e,0x99,0x40,0xcf,0x2a,0x6d,0xbd,0x60,0x6a,0xa7,0xbf,0x2d,0xfc,0x69,0x0b,0x33,0x90,0x70,0xea,0x9f,0xc3,0xb9,0x23,0x0f,0x99,0x3b,0xf2,0x83,0x5b,0x14,0xa6,0x75,0x96,0x66,0xca,0x81,0x1f,0xd7,0xc5,0x22,0xea,0x38,0x47,0xba,0x9d,0x2a,0xa2,0x30,0x4e,0x3a,0xc1,0xe6,0xae,0x57,0xdf,0xbf,0x25,0x03,0x5c,0xd8,0x4a,0x9a,0x30,0xa0,0x6b,0xc7,0xd6,0x40,0xd8,0xcc,0xea,0x44,0x42,0xcd,0xab,0x7c,0x15,0xc5,0xb1,0x1f,0x5a,0x30,0x45,0x73,0xee,0x92,0x28,0xf5,0x52,0xd7,0x06,0x43,0x1f,0x54,0x58,0xa5,0x01,0x00,0x99,0xdd,0xfd,0xeb,0x6b,0x16,0x50,0xf5,0x94,0x13,0xe3,0xed,0x64,0x27,0x70,0x47,0xf8,0x73,0x63,0x13,0x2e,0xbd,0xc6,0x2b,0x58,0x89,0x9a,0x11,0xd7,0x88,0xba,0x45,0x2b,0x93,0x2e,0x34,0x1e,0x7a,0x2a,0xf6,0x99,0xca,0x4a,0x0d,0x23,0xa9,0xa6,0xf8,0x80,0x54,0x10,0x90,0x49,0xbd,0x6e,0xed,0xf3,0xb4,0x95,0xa1,0xd9,0x98,0xf9,0x30,0xef,0x9e,0xcf,0x62,0x7b,0xb1,0xee,0x5f,0xbd,0xfc,0x1d,0x32,0x27,0x56,0x29,0x99,0x4c,0xfc,0xf4,0xa7,0x87,0xdb,0x28,0x9f,0xcc,0x33,0x6f,0x43,0xb1,0x1a,0x93,0x2a,0xff,0xee,0x58,0x43,0x39,0x1d,0x42,0x14,0x12,0x5e,0x6b,0x1d,0xe2,0xd5,0x16,0x79,0xe3,0x24,0xa6,0x2b,0x7f,0xe3,0x45,0xe5,0xc3,0xe8,0x68,0xe1,0xea,0xe6,0x0e,0xd5,0x51,0x7e,0x16,0x8c,0x79,0x41,0xc5,0x21,0xe0,0x5d,0xd4,0x83,0xc8,0x9b,0xe2,0xc0,0x06,0xbf,0xcb,0x21,0x96,0xea,0x57,0xa4,0xb8,0x1a,0xd9,0xd7,0x69,0xc6,0x03,0x1d,0x88,0xa3,0xb8,0xfb,0xc4,0x6d,0x65,0x53,0x1c,0xb7,0x1d,0xda,0x76,0x4a,0xd1,0xd9,0x5c,0xec,0x0d,0x4d,0x67,0xbd,0x0d,0x01,0x70,0xa2,0xe3,0xf8,0xa7,0x27,0xb1,0x79,0xdb,0xf8,0xf6,0xbd,0xd1,0xd4,0x5d,0xde,0x9a,0x45,0x0b,0xa2,0x05,0xf2,0xda,0x7b,0x95,0x72,0x26,0xb6,0x2a,0x2c,0xa2};
    static std::uint8_t digest69[32] = {0x23,0x6f,0x65,0xa4,0x57,0xca,0x95,0x33,0xde,0x9e,0x09,0xe4,0xca,0x5b,0xed,0x48,0xfe,0x3e,0x46,0x70,0x22,0x3e,0xed,0xb9,0x5b,0xdf,0x1e,0x8e,0xf4,0x2a,0xa8,0xc2};
    ctx.reset();
    ctx.do_final(digest, msg69, sizeof(msg69));
    if (std::memcmp(digest69, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg70[187]    = {0xed,0xf5,0xbb,0xfb,0x7b,0x94,0x53,0x5e,0x0e,0xba,0x17,0x66,0xa4,0x34,0x70,0xa6,0x4b,0x7f,0x2e,0xe5,0x4b,0xaf,0x1d,0xc3,0xb2,0x68,0xb4,0x8c,0x15,0x43,0xaa,0x7d,0xd2,0xdb,0xc2,0x4f,0xbb,0xc6,0x29,0xe5,0xdc,0x1c,0x5e,0x47,0xdd,0x37,0xad,0x22,0x61,0x1c,0x11,0x44,0x08,0xce,0xc0,0xde,0x94,0xc4,0x64,0xa7,0x26,0xd7,0x3a,0x50,0xe4,0xe8,0x24,0x5d,0x3b,0x0a,0x0f,0x73,0x2d,0xe5,0xe0,0x3c,0xa6,0xb9,0xa3,0x90,0xab,0x8e,0x2e,0x1e,0x8b,0x7c,0xb8,0x40,0x84,0xbb,0x05,0x5f,0xf6,0xff,0xee,0x34,0x29,0x90,0xa0,0xa8,0xdd,0x2b,0x49,0x2c,0x4f,0x59,0xa2,0xba,0xbd,0xaf,0x54,0xbb,0x9b,0x69,0xc2,0x6a,0x35,0x77,0x45,0x1e,0xee,0x01,0x28,0x69,0x28,0x68,0x30,0x7d,0x81,0x30,0xc7,0xf7,0x10,0xb5,0xdc,0xb9,0xc4,0xc2,0x8a,0xc3,0xc8,0x25,0xe1,0x38,0xef,0xcd,0x38,0x35,0x2f,0x8a,0x3b,0x9c,0x14,0xf6,0x7d,0x6a,0x6f,0x1f,0x79,0xef,0x23,0x84,0xa0,0x24,0xbe,0xfa,0x80,0xb7,0x0a,0x6d,0x11,0x04,0xbb,0xe3,0x54,0xbf,0x4c,0xe7,0x43,0xa7,0x3a,0xd1,0x86,0x3d,0x1e,0x67,0xf4};
    static std::uint8_t digest70[32] = {0x58,0x34,0x6b,0x27,0x51,0x3b,0xd4,0xeb,0xb3,0x60,0xeb,0x8a,0x4c,0xd6,0xea,0xb2,0xde,0xe3,0xe7,0xa0,0x42,0x83,0x32,0x34,0xfc,0x8b,0xd3,0xa9,0x77,0xf5,0x11,0x77};
    ctx.reset();
    ctx.do_final(digest, msg70, sizeof(msg70));
    if (std::memcmp(digest70, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg71[345]    = {0x46,0xd0,0x60,0x01,0x92,0x3f,0x1c,0xc7,0x5f,0x4c,0x69,0xd8,0x68,0x1b,0x7f,0xe8,0xf5,0x88,0xe5,0x4f,0xc9,0x4b,0xa4,0x4e,0x21,0x99,0x26,0x18,0xb1,0xe5,0xf3,0x42,0x65,0x95,0x9f,0x30,0x29,0x27,0xfe,0x49,0xae,0xb7,0xd3,0x09,0xad,0x01,0xb6,0xb8,0x4c,0x4e,0xee,0x82,0x11,0x87,0xa6,0x67,0xa2,0x54,0x41,0xd8,0x6b,0x11,0x6c,0x8c,0xb7,0x93,0x54,0x86,0x6d,0x06,0xbd,0xd1,0x2f,0xf7,0x6d,0x5f,0x0e,0x54,0xe9,0x92,0x30,0x22,0x74,0x3c,0x81,0x53,0x9f,0x00,0x5a,0x45,0x81,0xdb,0x5d,0x4c,0xda,0x76,0xea,0x55,0x88,0xcf,0xdf,0xbd,0x77,0xef,0x8c,0x50,0x8f,0x1c,0xb0,0x58,0x80,0x3f,0x61,0xc4,0x17,0x20,0x5a,0x0c,0x24,0xcd,0x13,0x93,0x50,0xda,0x96,0x65,0x1a,0xe1,0xca,0x43,0x93,0x76,0xd8,0xd9,0x83,0x0b,0x71,0x71,0x78,0x4b,0xce,0x08,0x3f,0x33,0xa2,0xac,0x8b,0x9c,0x4e,0xda,0xc8,0xde,0xd9,0x3d,0x45,0xdb,0x96,0xa3,0x34,0x5d,0xde,0x94,0x21,0xf2,0x10,0x4b,0x6f,0xb7,0xff,0x6b,0x17,0x9b,0x87,0x38,0x85,0x91,0xf7,0xc6,0xd3,0x8b,0xcd,0xe6,0x95,0xd4,0x2c,0x5c,0x9b,0x0c,0xc6,0x2b,0xb6,0xbe,0xd9,0xa1,0xc2,0xbd,0x30,0xa1,0x06,0x9c,0xa9,0x1b,0x93,0xc4,0x60,0x68,0x64,0x5d,0x0f,0x86,0x31,0xc1,0xa0,0x4a,0xb2,0xfa,0x9c,0xae,0x83,0xb8,0x21,0xea,0x75,0x14,0xa8,0xa3,0xdd,0xbb,0x3c,0x0d,0x0b,0xe6,0xa5,0x0c,0x55,0x19,0xd8,0x59,0x5f,0x0a,0xff,0x6c,0x60,0xa3,0xbd,0x88,0x05,0xbc,0xe1,0x2e,0x22,0xe6,0x5f,0xe9,0xef,0x53,0x0c,0xa0,0x22,0x3c,0x59,0x1a,0xb2,0x54,0xae,0x75,0x8f,0x1a,0x6d,0x95,0xc2,0xd4,0x14,0x0a,0x3f,0x11,0xae,0xf5,0xfa,0xd2,0x57,0x11,0x43,0xa2,0xc0,0x48,0xe2,0xe8,0x7f,0x05,0x12,0xb8,0xac,0xb5,0xa8,0xc1,0x57,0x06,0x43,0x1a,0xee,0xf8,0x7a,0x42,0x50,0x5f,0xc5,0xfd,0x7b,0xe3,0x92,0x33,0x8d,0xe3,0x62,0xef,0x21,0x82,0xcc,0x0d,0xe8,0x3f,0xd9,0x80,0xb4,0xa8,0x6a,0x54,0x55,0x42,0x99,0x42,0xff,0x7a,0xbc,0x79,0x25,0x8a,0xca,0xb0,0xc4,0xfd,0xc7,0x03,0x44};
    static std::uint8_t digest71[32] = {0x80,0x57,0xb7,0x21,0x96,0x17,0x8e,0x4d,0x19,0xf2,0xb3,0x51,0x1c,0x0a,0xd9,0x42,0xe9,0x74,0xb5,0x13,0xb5,0xa2,0x51,0xcf,0x33,0x3c,0x4b,0xb8,0xc4,0x04,0xa8,0x73};
    ctx.reset();
    ctx.do_final(digest, msg71, sizeof(msg71));
    if (std::memcmp(digest71, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg72[366]    = {0x9b,0x6f,0x26,0xd9,0xc6,0x2b,0x9f,0x75,0xfd,0xed,0x0a,0x86,0x96,0x74,0x3e,0x57,0xa2,0xe6,0xb1,0x73,0xd9,0x7b,0x65,0xd2,0xff,0x7a,0x64,0x32,0x50,0xed,0xb2,0x08,0x33,0xb8,0x84,0x6f,0xdf,0x30,0x9a,0x3e,0x1e,0xca,0x74,0x84,0xf3,0xe7,0xe9,0x98,0x32,0xb7,0x24,0xbb,0x53,0x0c,0x48,0x80,0xfd,0xb0,0xad,0x02,0xf0,0x00,0x7e,0xfa,0x67,0x99,0x29,0x4a,0x33,0x18,0xc7,0xd4,0x23,0x79,0x2d,0x2d,0xcf,0x68,0x78,0xda,0x5c,0x28,0xf9,0xb4,0x60,0x40,0x0a,0x69,0xed,0x02,0x07,0x92,0xbb,0x72,0x01,0xc3,0xa3,0x6d,0xf9,0x4c,0x03,0x41,0x1c,0xf7,0x58,0xa0,0xc4,0xba,0x2f,0x3e,0x03,0xbb,0x47,0xb5,0xe5,0xf5,0x38,0xc2,0x4e,0xb2,0x83,0x17,0x91,0xfb,0xc7,0x88,0xad,0x35,0xde,0x70,0xcc,0xb3,0x12,0xe1,0xba,0x05,0xde,0xea,0xec,0xbc,0x3f,0xcd,0x03,0x0d,0x1e,0xef,0x89,0xd2,0xe4,0x9f,0x7d,0xba,0x17,0xc0,0xc4,0x90,0x52,0x8d,0x17,0x09,0x45,0xdf,0x03,0x10,0xb1,0xcb,0x07,0xc3,0x99,0xef,0x5c,0xec,0x95,0xc4,0x11,0x1c,0xaf,0xe3,0xbb,0xce,0xeb,0xa4,0x62,0x18,0x34,0x5a,0x87,0x57,0xff,0xa3,0xec,0x0d,0xbf,0xd9,0x8f,0x49,0x51,0x58,0x0c,0x8e,0x68,0x7b,0x3d,0x15,0x15,0x3f,0xf7,0xfe,0x5b,0x9b,0xe1,0xc1,0xe7,0xa5,0x31,0x97,0xc3,0xb4,0x3a,0x40,0x69,0xcb,0xd6,0x01,0x73,0x49,0x88,0x52,0xca,0x77,0x3c,0xd9,0x57,0xd6,0xc6,0x84,0x3e,0x7a,0x39,0x0c,0x71,0xef,0x7d,0x1a,0x59,0x32,0xf8,0x05,0xcd,0xec,0x57,0x18,0x03,0xba,0xdf,0xc8,0x37,0xed,0x99,0xae,0xdb,0x22,0x47,0xf3,0x13,0xb7,0xbf,0x0a,0xf3,0xe4,0xa7,0x3e,0xe8,0xa8,0xdb,0xe9,0x8a,0xae,0xa0,0x9e,0x64,0xba,0x78,0xb5,0x3a,0x8a,0x99,0x0e,0x01,0x31,0xf7,0xf2,0xb2,0x64,0xe3,0xa4,0xeb,0x91,0xcf,0xfd,0x4f,0xab,0x8e,0x80,0xed,0x4b,0x35,0x2d,0x40,0x20,0x3c,0xdd,0xe0,0xa8,0xf7,0x48,0xae,0xdf,0xe8,0x65,0x30,0x69,0xda,0x4c,0x9b,0x43,0x9f,0x0c,0xbf,0x67,0x4f,0x7a,0x7c,0x58,0x24,0xda,0xb0,0xf0,0x28,0xe1,0x20,0xbc,0xf2,0xdf,0xc7,0x7a,0x43,0x41,0x32,0x11,0xf2,0xf8,0xbe,0x67,0x7a,0xc9,0x97,0x84,0x91,0x1e,0x41,0x8e,0x5c,0x5d,0x5b,0xe5};
    static std::uint8_t digest72[32] = {0x42,0xf6,0x94,0xbb,0xb3,0xc6,0xbd,0xda,0xc6,0xbc,0x15,0xbc,0xd7,0x78,0x23,0x39,0x4b,0x90,0xed,0xf7,0xa8,0x9b,0xe6,0x41,0x02,0xfd,0x3c,0x54,0x0f,0x11,0xd6,0x05};
    ctx.reset();
    ctx.do_final(digest, msg72, sizeof(msg72));
    if (std::memcmp(digest72, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg73[85]    = {0xbc,0x74,0xd1,0x6e,0x68,0x4f,0x33,0x8b,0x85,0x03,0x88,0xbf,0x83,0xb9,0x73,0x62,0x05,0x28,0xed,0xd0,0x9a,0x43,0xda,0x14,0x34,0xe5,0xa0,0x03,0x15,0x3c,0xf4,0x72,0x62,0x0b,0x88,0x12,0x7a,0xb9,0xd3,0xc4,0xb8,0x11,0x25,0xc3,0x7c,0x56,0x9f,0x48,0x20,0x39,0x97,0x46,0x25,0xbd,0x54,0xf3,0xad,0xa1,0x2c,0xa7,0xa3,0x26,0x18,0x05,0x4e,0x85,0xcc,0xb3,0xfe,0xdb,0x15,0xb4,0x7e,0x62,0x3f,0x50,0x34,0x9d,0xe9,0xc7,0xd3,0xb7,0x51,0x84,0xfb};
    static std::uint8_t digest73[32] = {0x8d,0xb4,0x3e,0x46,0x4c,0x61,0x9e,0xf2,0x59,0xa6,0xdb,0x4c,0x61,0x7f,0x71,0xca,0x4c,0xbb,0x84,0x2a,0x0c,0xc7,0x0c,0x59,0x4b,0xca,0xb4,0x65,0xa5,0xfa,0xa7,0xc2};
    ctx.reset();
    ctx.do_final(digest, msg73, sizeof(msg73));
    if (std::memcmp(digest73, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg74[289]    = {0x21,0xa1,0xd1,0x46,0x5f,0x9e,0x7e,0xf5,0x8b,0x4d,0x03,0xaf,0xf9,0x54,0xde,0x31,0xa0,0x35,0x49,0x55,0x4f,0x5c,0xd2,0x3c,0x09,0xf9,0x96,0xf5,0x60,0x4e,0xa7,0x8b,0x9c,0xc3,0x9c,0xf6,0xf7,0x60,0x83,0x59,0xea,0x93,0xd5,0xf5,0x46,0x4f,0x34,0xb5,0x94,0x1d,0xad,0xe2,0xdc,0xa1,0x77,0xd3,0x4b,0x73,0xbd,0x48,0xa5,0xb7,0x50,0x04,0x56,0xfb,0x2f,0x22,0xc8,0x27,0x77,0x71,0x31,0x85,0x2e,0xe1,0xd3,0x7a,0x6c,0x83,0x62,0x99,0x41,0xaf,0x68,0xa8,0x19,0xd2,0x69,0xda,0x7c,0xcf,0x3a,0xb2,0x36,0x00,0x9e,0x6a,0xb6,0xfd,0x1c,0x97,0x42,0xbc,0xa3,0xcb,0x71,0xfc,0x16,0x84,0x76,0x8d,0xae,0x54,0x77,0x43,0x76,0xeb,0x48,0x71,0xcf,0xc8,0x40,0x0e,0x08,0x3e,0xf0,0x97,0xc6,0x73,0x32,0x2a,0x06,0xd2,0x31,0xb2,0xac,0x63,0xb8,0xbf,0xb6,0x73,0x76,0x5e,0x4e,0xa4,0x6c,0xc9,0xce,0x07,0xbe,0x1b,0x86,0xee,0xfc,0x12,0xa6,0x14,0xbe,0x26,0xc5,0xf1,0xf5,0x7a,0xed,0x2a,0xfb,0x1a,0xb0,0x57,0x69,0x3a,0xcc,0x18,0x18,0x20,0xd3,0xc4,0xa1,0xc5,0x98,0xd3,0x76,0x78,0x56,0x2a,0xd3,0x0c,0x96,0xb2,0x76,0x55,0x1b,0x7b,0x0e,0x32,0x8f,0xd2,0x84,0x52,0x29,0x31,0x57,0x7d,0x0c,0x12,0xef,0x49,0xff,0xe9,0x35,0x77,0xab,0x36,0x8b,0x17,0x9f,0x0b,0xf4,0x9b,0xb0,0x96,0x88,0xcc,0xad,0xa8,0x53,0x99,0x95,0xb6,0xe1,0x9d,0xdd,0xfc,0x14,0x43,0xc8,0x33,0x7d,0xde,0x22,0x3e,0xd5,0x51,0xc0,0x98,0xb2,0xad,0x1c,0x8e,0x4e,0xca,0x2d,0x86,0x84,0xbb,0xc0,0x73,0x2f,0x66,0x9a,0x55,0xe3,0xe4,0xe4,0x7f,0xf8,0xd0,0xb7,0xc2,0x38,0xe9,0x48,0x01,0xbe,0x38,0x73,0xaf,0xbc,0xec,0x3c,0xcd,0x64,0x3f,0xee,0xeb,0x87,0x18,0x73};
    static std::uint8_t digest74[32] = {0xe3,0x4f,0x3c,0xdd,0x0c,0x9a,0x36,0x66,0x65,0x0e,0x27,0xa7,0x35,0x08,0x61,0xe6,0xd2,0xdc,0x9d,0x59,0x62,0x82,0x7d,0x90,0x19,0x5b,0x49,0x90,0x59,0x40,0xbb,0x78};
    ctx.reset();
    ctx.do_final(digest, msg74, sizeof(msg74));
    if (std::memcmp(digest74, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg75[298]    = {0x61,0xb8,0xc9,0x7a,0x23,0x44,0x59,0xa2,0xd0,0xd4,0xa5,0x33,0x09,0x4d,0x47,0x24,0x7c,0x04,0x76,0xe2,0x07,0x31,0x6f,0x40,0x38,0x87,0xa1,0x84,0xfb,0xf3,0x4a,0xc5,0x45,0xa5,0x69,0x1e,0x1c,0xa2,0x4f,0xad,0x1f,0x98,0x1d,0x5e,0x88,0xab,0x6e,0x2c,0xbb,0x8f,0xc5,0x5f,0xed,0x9f,0x4c,0xe8,0x4b,0x44,0x89,0x3f,0x51,0x2e,0x35,0x84,0xe8,0x31,0x22,0x1b,0x7a,0x10,0xc6,0xfd,0xf9,0xe7,0x3d,0xdd,0x2a,0x77,0x68,0xd2,0xdd,0xc9,0x7a,0x06,0xba,0x95,0x3c,0xeb,0x07,0x02,0x81,0xed,0x92,0x7f,0x53,0x92,0x77,0xe5,0xf0,0x2c,0x09,0x9c,0x06,0x6f,0x8b,0x48,0xac,0x8e,0xb6,0x39,0x0c,0x32,0x99,0x3f,0xca,0x5f,0xff,0x27,0x72,0xe5,0xc4,0xc3,0x70,0xf9,0xb6,0x25,0x74,0xee,0x69,0xd3,0x82,0xa6,0x45,0x63,0x04,0xd3,0x68,0x78,0x5e,0xf5,0xea,0x1a,0xf3,0x1a,0x1e,0x2b,0x60,0x42,0x65,0x71,0x0e,0xdb,0x8f,0x02,0x0e,0xa3,0xae,0x07,0xc1,0x08,0x80,0xb1,0x9e,0x35,0x27,0x6b,0x99,0xd3,0x1e,0x41,0xaa,0xb2,0xab,0xbc,0xe5,0x0f,0x37,0xc1,0xf1,0x81,0xc1,0x81,0xaa,0x3b,0x0f,0x20,0x0d,0x15,0x87,0x37,0xbf,0xce,0xb1,0xa3,0xb3,0x4f,0x03,0x1c,0xf0,0xdd,0x5a,0xb7,0xdc,0x7d,0xc2,0x72,0x09,0xc1,0x00,0x35,0xe6,0xf5,0xa7,0x81,0x87,0xd0,0xdd,0xc7,0xcc,0x15,0x92,0xb0,0xdf,0xcf,0xc4,0xa6,0x78,0xc2,0xdf,0x1c,0x53,0xa2,0x35,0xbd,0x72,0xb5,0x97,0x0e,0xde,0x90,0x3d,0x3c,0x28,0x6d,0x21,0x25,0x76,0xed,0xb7,0x17,0xe0,0x5b,0xf5,0x66,0xf7,0x79,0xe6,0xad,0x7e,0xf4,0x02,0x58,0x83,0xc7,0x54,0xab,0x9b,0xf6,0xde,0x62,0xdf,0xeb,0x52,0x13,0x56,0xba,0x45,0x95,0xc0,0xae,0xd0,0xde,0x2b,0x87,0x85,0xbe,0x90,0x74,0x65,0x53,0xae,0xea,0xbb,0xb2,0xd9,0x29,0xec,0x3f};
    static std::uint8_t digest75[32] = {0x8c,0xe5,0xde,0xe8,0x89,0xf7,0xb1,0x95,0xff,0xf4,0x40,0xe2,0x40,0xb1,0xe3,0xa6,0x5e,0xc5,0x94,0x68,0xe4,0x1c,0xea,0x80,0x78,0x65,0x0e,0x2f,0xdb,0x6f,0xd3,0x4f};
    ctx.reset();
    ctx.do_final(digest, msg75, sizeof(msg75));
    if (std::memcmp(digest75, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg76[437]    = {0xdb,0xb0,0x55,0xfe,0x6e,0x57,0xfb,0x6b,0x36,0x34,0x6a,0x82,0x00,0xae,0x3e,0x79,0x68,0xcb,0x1d,0xbe,0xec,0x8a,0x64,0xc4,0x66,0xf7,0xd7,0x26,0xa4,0x43,0x94,0xf7,0xfa,0xed,0xaa,0xd1,0x25,0x20,0xec,0x59,0xad,0xbd,0x9c,0x0e,0x63,0x22,0xa2,0x4c,0xb9,0xf4,0x5a,0xeb,0xba,0x60,0x34,0x2e,0x7c,0x43,0x17,0xf1,0xae,0x71,0x40,0x90,0x61,0x2d,0x89,0x61,0x0d,0xf1,0xb0,0x94,0xf7,0xc0,0xa6,0x1f,0x46,0xeb,0x9d,0xd5,0x56,0x8f,0xbb,0x92,0x63,0x46,0x27,0x4f,0x06,0x17,0x13,0x16,0x3b,0x15,0xf7,0xd7,0xc9,0x63,0xd0,0x53,0x04,0x3d,0x04,0x55,0x79,0x63,0x46,0x70,0xd9,0x18,0xd0,0x8f,0xb8,0xa1,0xf6,0xbf,0xdb,0x17,0x0a,0x35,0x1a,0x62,0x3d,0x02,0x90,0xca,0x27,0xa4,0x46,0x85,0x3e,0xb0,0xaf,0x10,0x56,0xbb,0xfb,0x39,0xc1,0xf3,0xa2,0xd1,0xe6,0xfa,0xe7,0xd3,0x73,0xcb,0xe9,0xb1,0xf5,0x8c,0x80,0x80,0x5c,0xfc,0x01,0xae,0x3b,0x9b,0x1f,0xd7,0x94,0x6c,0xe1,0x5d,0x22,0x3c,0x48,0x13,0xaf,0x17,0xf4,0x58,0xfe,0x03,0xd9,0x05,0x28,0x89,0xf5,0x6c,0xee,0x63,0x1c,0x65,0xe4,0xc4,0x99,0x9e,0x61,0x58,0x93,0xc9,0x8c,0xec,0x06,0xc8,0xc9,0xcc,0x42,0xd4,0xd6,0x26,0xa6,0x08,0x59,0x61,0x8f,0x2f,0xf0,0x32,0x21,0xbe,0x7a,0xd4,0xa4,0x26,0xba,0xe1,0x4c,0xb8,0x03,0xf1,0xcd,0xc4,0xd9,0x31,0x6f,0xb9,0xb5,0xb5,0x4f,0x47,0xf7,0xfc,0x8d,0xd4,0x0b,0x2a,0x33,0x05,0x06,0x39,0xde,0xdd,0x0b,0xe9,0x89,0x74,0x8c,0xf9,0x15,0x54,0x94,0xa0,0xf5,0xe2,0x42,0xf4,0xac,0x68,0x47,0x6b,0x26,0x52,0x3b,0xad,0x74,0xa4,0x36,0xcd,0x6b,0xfd,0xf4,0x12,0xae,0x5a,0x50,0x39,0x34,0x52,0x73,0x2e,0x86,0x5e,0xb4,0xab,0x46,0xeb,0xf8,0x82,0xee,0xbc,0xd3,0x77,0xb1,0x5d,0xf0,0xda,0x40,0x45,0xa4,0x22,0x0e,0x22,0x1b,0xcd,0x45,0xf1,0x9b,0xcb,0x7e,0x44,0x96,0x38,0x50,0xfe,0xc0,0xa8,0xcd,0xa5,0x90,0x8a,0x21,0x8e,0xc1,0xfc,0x4d,0xb5,0xca,0xcf,0x40,0xd8,0x71,0xe0,0xbf,0xed,0xd1,0x04,0xff,0x5e,0xe2,0x93,0x36,0xae,0xc9,0xbf,0x30,0x1e,0x36,0xd6,0xd6,0x54,0x2e,0xf8,0x67,0x4a,0x69,0xaa,0x39,0x9d,0x4b,0xdc,0x38,0x9e,0xba,0x69,0xef,0x16,0xf7,0xda,0x93,0xf2,0x8f,0x44,0xbd,0x13,0x1a,0x73,0x7d,0x71,0xb3,0x87,0x26,0x0b,0x4c,0x44,0xe8,0x69,0x7e,0xb2,0x39,0x9b,0xd6,0xa1,0xb0,0x16,0xfc,0xce,0x1b,0x11,0xfa,0x03,0xb0,0x22,0x69,0x86,0xa3,0x6c,0x7d,0x4d,0xec,0xbb,0x11,0x25,0xa7,0xee,0x8c,0x5f,0x3e,0x9b,0xe2,0x7d,0x98,0x32,0x4d,0xb6,0xcc,0x2d,0xb3,0xe8,0xe7,0xf4,0xbf,0x39,0xc5};
    static std::uint8_t digest76[32] = {0x06,0x15,0x25,0x2b,0x6a,0x17,0x28,0xa3,0x32,0xfb,0x87,0x98,0x74,0x4d,0x31,0xdb,0xd8,0x69,0x6c,0x55,0xbd,0xc3,0x82,0xaf,0x8c,0x16,0x17,0x77,0xc3,0xd6,0x0b,0x49};
    ctx.reset();
    ctx.do_final(digest, msg76, sizeof(msg76));
    if (std::memcmp(digest76, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg77[496]    = {0x47,0xda,0x1f,0x09,0xdf,0x77,0x09,0x06,0xf2,0x2d,0xb2,0x80,0x91,0xec,0x4d,0xca,0xfb,0x04,0xf8,0xc6,0xeb,0x46,0x01,0xb1,0x9b,0x22,0xb4,0x19,0x51,0xd7,0x9d,0xb6,0x52,0xe6,0x1a,0x7b,0x42,0x8b,0x11,0x38,0x79,0xa6,0x60,0x6f,0x3e,0x43,0xfd,0x43,0x15,0x67,0x8d,0x49,0x20,0x94,0x36,0x06,0xa4,0xda,0xde,0x24,0x2c,0xaf,0x12,0xef,0xbb,0x8e,0x0a,0x93,0xbf,0x07,0x7f,0xd5,0xef,0xb1,0x42,0x1d,0xe6,0xc9,0xe5,0x8b,0xfd,0x76,0x30,0x79,0x69,0x75,0x7b,0x96,0xd0,0x68,0xef,0x3d,0x7c,0x44,0x4b,0xbc,0x6a,0x86,0xa5,0x73,0xdd,0xf5,0x1c,0xa6,0xd8,0xef,0x81,0xfd,0x91,0x38,0xe0,0x3d,0x73,0x9a,0x5d,0xf7,0x49,0x44,0xfe,0x6a,0x20,0xef,0xc4,0xbb,0x56,0x4d,0x78,0xd0,0x8b,0xd4,0xaf,0x3c,0x01,0x93,0x65,0xdc,0x89,0x97,0xe4,0x4f,0xfd,0x75,0x42,0x4e,0x7d,0xa6,0xd5,0xff,0x0f,0x28,0x85,0x78,0xbc,0xfb,0x68,0xa3,0x08,0xc6,0x50,0xf0,0xef,0xca,0xe2,0xe4,0xf8,0x72,0xb9,0xf2,0xb9,0x6b,0x8a,0x3b,0x43,0x3c,0x41,0xe0,0x69,0x3c,0x0c,0x66,0xad,0x37,0x67,0x64,0x27,0xfa,0xf8,0x38,0xdf,0x15,0xa5,0x68,0xc8,0x35,0xfb,0x1b,0x03,0xcf,0x45,0x2f,0xdb,0x97,0x73,0x59,0x45,0x80,0xd4,0xb7,0xc6,0x87,0xf8,0xdd,0x8b,0xdf,0xc7,0x3f,0xe6,0x37,0x14,0x4a,0x65,0xc5,0x7a,0x65,0x96,0x29,0xe2,0xa1,0xe2,0x97,0xe4,0xde,0x6d,0xb4,0xf2,0xc5,0x97,0x97,0xa6,0x31,0xff,0x12,0xff,0x8a,0x18,0x92,0x1d,0x72,0x26,0x26,0x62,0x9f,0x1f,0xc3,0xc4,0x0f,0x15,0xe4,0xf6,0x80,0x27,0xd2,0xef,0x00,0xcc,0x7d,0x3e,0xcb,0xce,0xc3,0xff,0x17,0xed,0x88,0x54,0xfd,0xd9,0x3a,0x12,0x01,0x62,0xeb,0xc5,0x0b,0x0e,0x01,0x34,0xa5,0x08,0x1d,0x58,0xdc,0x0f,0x12,0xa2,0x70,0x0f,0x0c,0x06,0x3c,0xf2,0xf8,0x61,0xfd,0xb0,0x69,0x6d,0x81,0x10,0x42,0xe6,0x3d,0x5f,0x93,0x80,0x60,0x4f,0x2e,0xc6,0x2e,0xdb,0x48,0x43,0x0f,0x67,0xe8,0x5b,0x7e,0xc1,0xc2,0x39,0xc9,0x1a,0x0b,0xc6,0xa4,0xbc,0x6f,0x9a,0x26,0x9a,0xa5,0x1e,0xf8,0xb2,0xb2,0x42,0x6f,0x9a,0x8b,0x1a,0xd9,0x3c,0x04,0xf1,0x7b,0xe9,0xad,0xfb,0x9a,0xa7,0x75,0xea,0xd5,0x98,0x84,0xce,0x7b,0xe5,0x9b,0x1a,0xec,0x6e,0x22,0x01,0xdf,0x8a,0xee,0x49,0xe3,0x13,0xbb,0x28,0x66,0xe6,0x7f,0xbe,0x52,0xb8,0xf5,0x7f,0xae,0x22,0x36,0x80,0x41,0x60,0xcc,0xf9,0xf9,0x37,0x0f,0xfd,0x19,0x3f,0x67,0xe3,0x87,0xda,0xa1,0x40,0x35,0x9f,0xb4,0x5a,0x6e,0x1b,0xb6,0x8f,0xcd,0x61,0x2a,0x61,0xba,0x61,0x83,0x1b,0x73,0xed,0xf1,0x12,0x06,0xcd,0x84,0x05,0x49,0x01,0xa4,0x89,0x12,0xb6,0xc3,0xe5,0x82,0x7b,0x35,0x8b,0xc7,0x8c,0x57,0x94,0xcf,0x15,0xc4,0x3d,0x6b,0xe1,0x0c,0x39,0xcc,0x51,0x1c,0x2c,0x8d,0xff,0xb9,0xea,0x01,0xae,0x9f,0xaa,0xd1,0x50,0xd1,0xab,0x8e,0x8c,0xd7,0x49,0x13,0xa8,0x8e,0xa9,0x68,0xf6,0x9c,0xb0,0x27,0x76,0xf3,0xda,0xa0,0x7b,0xbc,0x97,0xc8};
    static std::uint8_t digest77[32] = {0x74,0x07,0x5c,0x6c,0x62,0x36,0xe3,0x6e,0x37,0x41,0x69,0x98,0x21,0xd3,0x16,0x23,0x70,0x95,0x4d,0x2d,0xc5,0xa6,0x80,0x62,0x6b,0x4f,0x07,0x55,0x9c,0x3b,0x40,0xc3};
    ctx.reset();
    ctx.do_final(digest, msg77, sizeof(msg77));
    if (std::memcmp(digest77, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg78[277]    = {0x2a,0x5a,0x32,0x34,0x18,0x45,0x1a,0xdd,0xc2,0x4d,0x89,0xf2,0xa9,0x71,0x7e,0xda,0x3c,0x55,0x3f,0x80,0xc6,0x62,0xa7,0xb8,0xbf,0x00,0x71,0x33,0x0b,0x10,0x3b,0xc1,0x27,0xc6,0xf4,0x29,0xd4,0x32,0x13,0xbf,0xc5,0xf6,0x8b,0xa0,0xbc,0x7a,0xf3,0xd5,0xab,0x3a,0x93,0x43,0x45,0x9d,0x3d,0x2d,0x65,0x0c,0x56,0x75,0xad,0x54,0xd1,0xf5,0x42,0x63,0x5e,0xd3,0xec,0xc9,0x0e,0xc3,0x44,0xa8,0x97,0x65,0x7e,0xaa,0x62,0xfa,0x3d,0xea,0x63,0x97,0xd1,0x79,0xa4,0x7c,0x8e,0xc5,0xe3,0x1a,0xaf,0xf0,0x5d,0xdb,0xa2,0xb5,0x7f,0xec,0x4e,0x29,0x72,0xc4,0x82,0x92,0xac,0x35,0x17,0x2c,0xb6,0x0e,0x35,0xf1,0x5c,0x8b,0xd8,0x69,0x25,0x31,0x3d,0xd5,0x35,0x62,0xcf,0x18,0x2e,0x3e,0x16,0x1c,0x18,0x22,0x38,0xd8,0x11,0xeb,0x1a,0xd0,0x56,0xee,0x65,0xec,0xd7,0xb2,0xf5,0x91,0xdf,0xc8,0x57,0xbc,0xbb,0xe7,0x5c,0x9a,0x8c,0xac,0x13,0xb7,0xec,0xe6,0x89,0x97,0x61,0xd7,0xe0,0xf9,0x70,0xf6,0xf9,0xeb,0xbe,0x48,0x49,0x86,0xb6,0x79,0xd4,0x5a,0xae,0xe6,0x9c,0x01,0x06,0xd0,0xf3,0x84,0x6b,0xb2,0xf4,0xa8,0xf4,0x6a,0xca,0xd5,0xca,0x81,0x22,0x61,0x8b,0x65,0x27,0x15,0x80,0x4f,0xc0,0x3c,0x14,0xa4,0xa1,0x0f,0x89,0x0f,0x0e,0xbc,0x04,0x04,0xf5,0x0d,0x62,0xcc,0xb7,0x8c,0x47,0xc8,0x08,0xc3,0x2d,0x6e,0x5b,0xb1,0x74,0x3a,0xb3,0x31,0x25,0x43,0xf7,0x40,0x10,0xea,0xad,0xba,0xb3,0xf8,0xb1,0xee,0xdb,0x7b,0xbf,0x23,0x87,0x44,0x76,0x5d,0xc2,0x4a,0x98,0x66,0x64,0xa5,0xf8,0x09,0xab,0xdc,0x5a,0x84,0x1c,0x04,0x8e,0x8c,0xe8,0x24,0xdd,0xc9,0x27,0x3b,0xe0};
    static std::uint8_t digest78[32] = {0xf1,0x97,0xc9,0xe3,0x9c,0x7e,0x80,0x7d,0x6d,0xe4,0x30,0x5e,0x3a,0x0f,0x11,0xd8,0x36,0x30,0x65,0x21,0x91,0xfd,0x10,0x58,0xaa,0xd3,0x77,0x82,0x46,0x66,0xda,0x1a};
    ctx.reset();
    ctx.do_final(digest, msg78, sizeof(msg78));
    if (std::memcmp(digest78, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg79[456]    = {0x57,0x29,0xb8,0xea,0xa0,0xbe,0xe1,0x70,0x9a,0xc5,0xfc,0x4e,0xb7,0xb4,0xb0,0x35,0x0b,0xaa,0x26,0xad,0x25,0x4c,0x14,0xc6,0xd3,0xf5,0x55,0x5f,0xcc,0x42,0x0d,0x6c,0xfe,0x60,0xf2,0xc6,0x57,0xad,0xd4,0xe9,0x83,0xfe,0xd6,0x75,0x97,0xc9,0x72,0x8b,0x2c,0xb6,0xba,0x2b,0xa5,0xb5,0xc7,0x75,0x5e,0xc5,0x40,0x11,0x18,0xd3,0x45,0x8e,0x80,0x2d,0x4e,0x96,0x6c,0xce,0x45,0x0f,0xce,0x90,0x49,0x27,0xc1,0x3a,0x76,0x94,0x74,0x25,0x0b,0xc4,0xa4,0x3e,0xbe,0xae,0x46,0x31,0xb5,0x56,0x15,0x1a,0x3a,0x87,0xc1,0x9d,0xfe,0xfc,0x8d,0xb9,0xa4,0xca,0x44,0xa8,0x19,0xda,0x85,0x5e,0xb9,0xe9,0xb5,0x54,0x78,0x6a,0xc9,0x5d,0xf5,0x52,0xf7,0xee,0xe1,0x59,0x99,0x7c,0xc5,0xad,0x6e,0x99,0x4f,0xf6,0x8d,0xe6,0x75,0x9a,0x6d,0x11,0x44,0x02,0x76,0x99,0x89,0xda,0x85,0x73,0x69,0x11,0xf3,0x63,0x62,0x8c,0x18,0x8c,0xfd,0x51,0x78,0x06,0x15,0xe9,0xc5,0x60,0x64,0x5c,0x13,0xf3,0xc0,0xe1,0xe8,0x33,0x80,0x76,0x0a,0xd0,0x37,0x73,0xc1,0x06,0x42,0x80,0xa6,0x02,0xea,0xd7,0x66,0x59,0xcb,0x95,0x8c,0x5f,0x1b,0xc5,0xba,0xc9,0x94,0xa1,0x00,0x7d,0x62,0x50,0x58,0xc8,0x61,0x94,0xd0,0x30,0xb4,0xce,0xd7,0x05,0xdf,0xf5,0xcd,0x62,0xc6,0xae,0xf8,0x5a,0x52,0x1e,0xec,0x2e,0x35,0x5d,0xe1,0x60,0x5e,0x7f,0x0e,0x3f,0xac,0x5e,0xb1,0xa6,0x7d,0x42,0x15,0x24,0x13,0x50,0xf8,0xcd,0x0a,0x21,0x59,0x67,0x95,0x6e,0xb6,0x99,0xbf,0x5e,0x1e,0x1b,0x8f,0x44,0x53,0xd1,0x64,0xe9,0xcc,0x71,0xe2,0x60,0xe2,0xdf,0xf1,0xeb,0x57,0x90,0xb4,0x18,0xc7,0xab,0x65,0x9c,0xf0,0xa6,0x0c,0x0e,0x36,0x0c,0x92,0x87,0x2d,0xef,0x11,0xf9,0x51,0x07,0x3d,0x4d,0x4f,0x48,0x1b,0x56,0x37,0xf3,0xf0,0x66,0x60,0x11,0xdc,0x15,0xd5,0xd2,0x5b,0x5c,0x9c,0x1a,0xca,0x31,0x1c,0xfb,0x1c,0x56,0x08,0xcd,0xdf,0x3f,0xae,0x8e,0xab,0xdd,0xab,0x6b,0x46,0x05,0x1c,0x77,0x12,0xf7,0xf2,0xb2,0xd0,0x60,0xa2,0xf7,0x7c,0x8e,0xd0,0xcd,0x9f,0x65,0x98,0x59,0x09,0xef,0x40,0xa3,0x5d,0x89,0x0a,0xfa,0xf5,0xfc,0xf7,0xe0,0xe9,0x73,0x5e,0x3b,0xe2,0x1c,0x75,0xd3,0x2c,0x6d,0xb4,0x26,0x8b,0x81,0xa6,0x4f,0x55,0xc5,0x39,0x4c,0x42,0x6e,0xa8,0xe2,0xba,0x62,0xce,0x21,0x1b,0x19,0x7d,0x10,0xcd,0x06,0x2b,0xef,0x29,0x24,0xee,0x34,0xfc,0xbb,0xb3,0xed,0x7f,0x65,0x46,0x8b,0x3f,0x53,0x1f,0x56,0xf9,0x4a,0xee,0xc5,0xe2,0x6c,0x7b,0xf0,0x78,0x96,0x16,0x36,0x36,0x5f,0x87,0x97,0x70,0x0b,0x78,0xc3,0x4d,0x41,0xe5,0xc6,0x43,0xb9,0xda,0xb3,0x8b,0x58,0x18,0xfa,0xb3,0xf0,0x85,0xba,0x80,0x3f,0x30,0x08,0xfd,0x94,0x46,0xaa,0xe6,0x17};
    static std::uint8_t digest79[32] = {0xbe,0x93,0xb2,0x27,0x12,0xa3,0xff,0x2b,0x90,0x9a,0xb0,0x71,0xd4,0x60,0x11,0x9f,0x41,0xf7,0x4b,0x00,0x99,0x87,0x97,0x88,0x82,0xe5,0x95,0x05,0x4f,0xbe,0xa6,0x0e};
    ctx.reset();
    ctx.do_final(digest, msg79, sizeof(msg79));
    if (std::memcmp(digest79, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg80[473]    = {0xb4,0x21,0x79,0x5e,0xdd,0x5f,0xcb,0xb1,0x6d,0xcd,0xa7,0xf3,0xb7,0x43,0xd7,0xfe,0x0b,0x3e,0x20,0xec,0xd1,0x63,0xc8,0x30,0x3a,0x1d,0xb2,0xd6,0x44,0x14,0xbd,0x5b,0x72,0xee,0x14,0x28,0x82,0x82,0xb8,0x4a,0xa9,0x05,0x7a,0x55,0xc8,0x1a,0xab,0xe6,0x64,0xf7,0x79,0x3a,0xcb,0x1f,0x85,0x7b,0xb8,0xae,0xfc,0x37,0x28,0x61,0x67,0x1b,0x53,0x45,0xeb,0x56,0x97,0xee,0xfa,0xff,0xde,0x1a,0x63,0xbc,0xd4,0xf8,0xf1,0x07,0x93,0xd6,0xb0,0x21,0x43,0x6d,0x1b,0xa2,0x0a,0xc3,0xee,0xc5,0xf8,0xb8,0xcc,0x15,0x08,0x26,0xa1,0x11,0x26,0xb2,0xff,0x3b,0xc3,0x9b,0x69,0xdc,0x31,0x0a,0xa6,0x18,0x83,0xa1,0xc7,0xde,0x4d,0xea,0x98,0x10,0x65,0x49,0xeb,0x41,0x51,0xef,0xcf,0x82,0xd1,0xc9,0xe9,0xbb,0xa3,0x33,0xe4,0x81,0x66,0xff,0x19,0xa6,0xf7,0x88,0xc8,0x26,0xa7,0x14,0xbe,0x02,0x43,0x4d,0xd9,0x43,0xf1,0x6c,0xa1,0x21,0x74,0x00,0x69,0x80,0xfa,0x59,0xa3,0x26,0x35,0x63,0x78,0x02,0x0e,0x94,0x60,0xb8,0x0d,0xee,0xe6,0xea,0xff,0xde,0x51,0x39,0xdf,0xf6,0x08,0x9d,0x41,0x92,0xeb,0x59,0xc9,0x8a,0x4d,0x81,0x09,0x9b,0x2b,0x26,0x56,0xf1,0x1d,0x7d,0x49,0xd0,0x34,0xf7,0xd1,0xd7,0xce,0x8a,0x32,0x02,0x55,0x98,0xf4,0xc7,0xf9,0xe6,0x14,0x8c,0xda,0x08,0x7a,0x1b,0xbe,0xd8,0x20,0x53,0xf7,0x41,0x53,0x8f,0xbb,0xd9,0x37,0x5f,0xb0,0x83,0x5d,0xd3,0x85,0x0b,0x52,0xcc,0x9a,0x0f,0x04,0x66,0xad,0xbe,0xf8,0xe7,0x7f,0x3c,0x2b,0x2f,0xc1,0x87,0x24,0x92,0x2d,0x30,0xd0,0x79,0xbb,0xfa,0xe6,0xae,0xcc,0x80,0x89,0x67,0xf8,0x63,0x76,0x85,0xd3,0x23,0xde,0xf3,0x96,0x32,0xcc,0x5a,0x91,0xaf,0xb6,0x5d,0x95,0x92,0x9f,0xb5,0x5c,0x08,0x98,0x3d,0x72,0xa5,0x2c,0x6b,0x46,0xc1,0xaf,0x7f,0x3a,0xbc,0xa0,0x69,0x19,0x28,0xe2,0xd5,0xbb,0x8d,0x1a,0xd0,0x7b,0x3d,0x54,0x1a,0x35,0x48,0x7a,0x9c,0x59,0xbf,0x54,0x86,0xcd,0x91,0xb3,0xf5,0x38,0x2c,0xd1,0xfd,0x91,0x3a,0x75,0x4b,0x54,0xb6,0x70,0x78,0x47,0x29,0x85,0xf4,0x6e,0xbd,0x28,0xe9,0x6f,0xa1,0x5e,0xbb,0x16,0x65,0x6b,0x3a,0x7a,0x8a,0x42,0xe7,0xa4,0x75,0x6d,0x67,0x45,0x02,0xd5,0x42,0xbc,0xbb,0x2a,0x9d,0x91,0x3b,0x28,0x1b,0xf1,0x41,0x78,0x60,0x5d,0x1e,0x70,0xee,0x92,0x4f,0xfb,0x2e,0x91,0xe6,0xa5,0x7d,0x25,0xc5,0x54,0xfd,0xe8,0x3e,0x9d,0x51,0x49,0x18,0xbf,0x91,0x7b,0x65,0x95,0xb6,0x9d,0xd3,0xbb,0xdd,0x4c,0x58,0x9d,0x5e,0x30,0x6f,0xcd,0x4b,0xc0,0xaa,0xa9,0x85,0x4c,0x6e,0x9f,0x9d,0xeb,0xf6,0x6d,0x8a,0x29,0x52,0x92,0xd1,0x4c,0xb0,0x3a,0x58,0x84,0xe5,0xac,0xfb,0x98,0xc3,0x1f,0x44,0x8d,0x4a,0xc2,0x91,0x33,0x79,0x3a,0x8d,0xc5,0x64,0xec,0xaa,0xfd,0x5f,0x3b,0xfd,0x25,0xdb,0xb6,0x5d,0x4a,0x36,0x7b};
    static std::uint8_t digest80[32] = {0x91,0x02,0x81,0x4a,0x7b,0xe1,0xd5,0x65,0x3c,0xf9,0xce,0x1c,0xd0,0x8b,0x40,0x3d,0xbb,0xe3,0x9e,0xea,0x3b,0x40,0xd0,0x75,0xb0,0xf3,0xf6,0xbf,0x2e,0xa0,0xd9,0x04};
    ctx.reset();
    ctx.do_final(digest, msg80, sizeof(msg80));
    if (std::memcmp(digest80, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg81[245]    = {0x65,0xc1,0x41,0x50,0x26,0xb4,0x3f,0x17,0x96,0x3b,0x06,0xa0,0x70,0x37,0xc0,0x61,0xc9,0x15,0xc3,0x77,0x6e,0x4e,0xc7,0x20,0xba,0x2a,0x74,0x82,0xee,0x08,0x0b,0x56,0x10,0x1e,0x9d,0xcf,0xb3,0xaf,0x94,0xe8,0x6b,0xfd,0x31,0x63,0x54,0x63,0x50,0x62,0x14,0x07,0xcb,0xd4,0x2f,0x58,0xdd,0x84,0x4a,0xb8,0x9e,0x4f,0x7b,0xbc,0xd1,0x01,0xc4,0x4e,0x78,0xf2,0x03,0xff,0xed,0x1b,0xea,0x2f,0xf5,0x42,0xeb,0xe3,0x7a,0x15,0xb1,0x14,0x91,0x3a,0x80,0xe7,0x73,0x7d,0x45,0xc5,0x22,0x50,0xed,0xbc,0x03,0x09,0x9b,0x3b,0x0f,0x9b,0x38,0xff,0xbf,0xe1,0xa2,0x85,0x18,0x92,0x59,0xe0,0xa6,0x91,0x1b,0x71,0xbd,0x0f,0x90,0xdd,0x3f,0x9f,0x7b,0x30,0xd7,0x34,0xcb,0x54,0x72,0xad,0xa6,0xab,0x7b,0x7b,0x1e,0x0d,0x9f,0x2b,0xe3,0xc7,0x70,0xf7,0xf3,0x83,0xde,0xd4,0x16,0x7c,0x50,0xc0,0x87,0x38,0xc1,0x73,0x78,0x7c,0x4c,0xa0,0x73,0xcd,0x6d,0x05,0x4a,0x5e,0x1d,0xbc,0x93,0xc1,0x9f,0x2d,0x67,0x28,0xe9,0x47,0x3c,0xd7,0x8f,0x3e,0x71,0xb1,0x59,0x91,0xf6,0x04,0xe7,0x9d,0x1d,0x33,0xa6,0x32,0x59,0x28,0x7c,0xa3,0x56,0x45,0xb1,0x69,0x5d,0x5e,0x17,0x0f,0x7f,0x04,0x84,0x02,0x70,0x68,0x00,0xad,0xab,0x37,0x8e,0xe2,0xbf,0x7f,0x44,0x1c,0x8c,0xe0,0x37,0x20,0x19,0xda,0xe5,0x2e,0x85,0x98,0xbd,0xb1,0x62,0x53,0xa1,0xb5,0x45,0x18,0xf7,0x4b,0xd1,0x0b,0x2e,0x04,0x2a,0x71,0x4b,0x19,0x17};
    static std::uint8_t digest81[32] = {0x7b,0xee,0xbd,0x80,0x4e,0x9c,0xd1,0x36,0x84,0x61,0xff,0x29,0xe8,0xa9,0xde,0x57,0x40,0xed,0x3d,0x96,0x7f,0x12,0xe4,0x90,0x8d,0xe4,0xee,0x8d,0x78,0x21,0x50,0xa9};
    ctx.reset();
    ctx.do_final(digest, msg81, sizeof(msg81));
    if (std::memcmp(digest81, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg82[32]    = {0xcb,0x5e,0x9b,0xcc,0x97,0x10,0xb1,0xa6,0x91,0xb3,0xe5,0xd9,0x04,0x79,0x70,0x64,0x50,0x43,0x77,0xf0,0xd3,0x45,0xd1,0xbc,0xe3,0x98,0xdb,0x3e,0xc5,0x75,0xec,0xe5};
    static std::uint8_t digest82[32] = {0x92,0xf1,0x03,0xd1,0xaf,0xa1,0xa2,0x36,0x1b,0x83,0x16,0xd5,0x96,0x5e,0x82,0x63,0x07,0x33,0x8a,0xa8,0xe6,0x55,0xdf,0xfc,0x13,0xba,0x34,0x65,0x33,0x78,0xfa,0xc5};
    ctx.reset();
    ctx.do_final(digest, msg82, sizeof(msg82));
    if (std::memcmp(digest82, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg83[395]    = {0x65,0x0d,0x6b,0xe3,0x63,0xbc,0x98,0xa9,0x25,0x02,0x34,0x8d,0xdb,0xf7,0x94,0xc7,0x6c,0xbf,0x44,0xb1,0xb1,0xbf,0x06,0x63,0x80,0x21,0x88,0x91,0xb0,0xb9,0x39,0x0c,0x1a,0x4f,0x14,0x9e,0xeb,0xcd,0x0d,0x22,0x29,0xfb,0x4e,0x0e,0x27,0x73,0x48,0x52,0xa0,0x21,0xb4,0xd8,0x1c,0x12,0x71,0x69,0x4a,0x4b,0x1c,0x02,0x01,0xcd,0x70,0xe0,0x84,0x54,0xe2,0xf5,0xf0,0x87,0x6a,0xc2,0x03,0x93,0x4a,0xf7,0x8e,0x5d,0x19,0x44,0x4b,0x98,0x74,0x20,0xe9,0xc3,0x7d,0x48,0xe4,0x77,0x17,0xb9,0xd0,0xa1,0x2b,0x2f,0x6d,0x79,0xdb,0x3b,0x0d,0x1d,0x25,0x04,0x42,0xcb,0x20,0xe0,0x33,0xbe,0x69,0xe2,0x20,0x5f,0xcf,0x2c,0x26,0xe6,0x41,0xe6,0x98,0x29,0x41,0xfe,0x59,0x3d,0x79,0x49,0x9e,0x9c,0x84,0xc8,0x87,0x99,0x4e,0x63,0xa1,0x8b,0x97,0x7b,0xbe,0xe2,0x15,0xfd,0x20,0x36,0xc2,0xba,0x99,0xe0,0xd3,0x5c,0x30,0x9e,0x9e,0x12,0xff,0xaa,0x55,0x9a,0xea,0xdb,0xb7,0xbc,0xda,0x47,0x53,0x43,0x95,0x8e,0xbb,0x63,0xcb,0x5b,0x6d,0x0f,0x2a,0xe0,0xc5,0xb5,0x34,0x34,0x20,0xf4,0x59,0x13,0xc2,0xef,0x9b,0x93,0x6f,0x26,0x78,0x83,0x47,0x81,0x02,0x0b,0x6c,0xd3,0xf8,0x30,0xae,0x72,0x4c,0x72,0x2c,0x4d,0x90,0x42,0xbc,0x01,0x6f,0x7e,0x0a,0xfc,0xf9,0x42,0x2c,0x7d,0x71,0xdd,0xcd,0xfd,0xec,0x22,0x36,0x6a,0x37,0xa7,0x4f,0x37,0x31,0x36,0x9f,0xd4,0x93,0x35,0xef,0x09,0xc2,0x6c,0x01,0xd5,0x9e,0x18,0xa9,0x89,0xa6,0x8d,0x84,0x48,0x35,0x9c,0x95,0xfa,0x89,0xcb,0x8b,0xc9,0xcb,0xa0,0x53,0xe3,0xd3,0xfb,0x20,0xee,0x51,0x66,0x08,0x75,0xa5,0xaa,0x0f,0x9c,0xeb,0x30,0x25,0xaa,0x83,0xfc,0x1b,0xdb,0xc3,0x87,0xff,0xd5,0xef,0xfd,0x70,0xb2,0x9f,0x93,0x72,0xa5,0xe6,0x9f,0xb6,0xb2,0x3d,0x13,0x6e,0x26,0x00,0xa7,0xfe,0x0e,0xb4,0x15,0xae,0x90,0x07,0x68,0x05,0xc7,0x9f,0xbe,0x49,0x8e,0xc0,0xa4,0x5c,0x40,0xe5,0x79,0xad,0xb4,0xb1,0x8e,0x41,0x28,0x8f,0x2a,0x3b,0xc8,0xae,0x80,0x2b,0x7c,0x29,0xdc,0x43,0xcc,0xd1,0x3d,0x4e,0x55,0x52,0x4f,0x27,0x6e,0xa3,0x15,0x03,0x50,0x99,0xc8,0xba,0x28,0x74,0xef,0xf9,0xed,0x99,0x55,0x39,0x34,0x7f,0x15,0x37,0x4b,0x31,0xcb,0x3e,0x25,0x13,0x48,0x7f,0xf6,0x14,0xf2,0xa3,0x04,0x0d,0x96,0x80,0x8c,0xe8,0x6e,0xe6,0xf5,0xbf,0x79,0x45};
    static std::uint8_t digest83[32] = {0x44,0x54,0x24,0x94,0x47,0xf1,0x47,0xfc,0xc0,0x1c,0x8f,0x85,0xce,0xc4,0xbf,0x42,0x0f,0xde,0x98,0xdf,0x03,0x5c,0xd6,0x49,0x7a,0xe5,0x2a,0x0d,0x3a,0xc5,0x8c,0x9a};
    ctx.reset();
    ctx.do_final(digest, msg83, sizeof(msg83));
    if (std::memcmp(digest83, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg84[425]    = {0x47,0x4d,0xa9,0xe8,0xdb,0x45,0x8d,0x62,0xbc,0x57,0x8b,0xb0,0x73,0xe7,0x27,0xd0,0x8b,0xe1,0x50,0xfe,0x74,0x15,0xc8,0x23,0x79,0xdd,0x38,0x55,0x5b,0x62,0xdc,0x7e,0xaa,0xa1,0x37,0x55,0xe1,0x47,0x68,0xc9,0x23,0x21,0x46,0x79,0xb6,0x38,0x99,0x52,0xc8,0x13,0x61,0x4d,0xe4,0xa4,0x3d,0x93,0x9a,0x24,0x2d,0x9a,0xa2,0x24,0x64,0x76,0xa6,0x6f,0xb0,0xbf,0xdc,0x5e,0xcd,0x65,0xa2,0x7c,0xb6,0x95,0xdf,0xda,0x8d,0x62,0xe1,0x57,0x33,0x48,0xf9,0xf7,0x98,0x23,0xb7,0x9b,0x62,0x92,0xa7,0x86,0x8e,0x84,0x18,0x8a,0xbf,0xee,0x54,0xca,0x29,0xe2,0x7d,0xf7,0x1f,0xba,0x69,0xfc,0xdf,0x26,0x01,0x85,0x1f,0x91,0x06,0xe7,0x01,0x1b,0x0b,0xe9,0x0f,0x05,0x3a,0x5c,0x99,0xbd,0x6d,0x25,0x2f,0x3b,0xba,0x78,0x5d,0xb6,0xdb,0xd1,0xa3,0x3c,0x08,0xcc,0x3f,0x92,0xff,0x26,0x54,0xdd,0x64,0xdb,0x9c,0x50,0x26,0x44,0x98,0xe0,0xe6,0xbe,0xd4,0x03,0xf0,0x12,0x03,0x96,0x97,0xd2,0x8f,0x39,0xb2,0xcc,0x5d,0x2b,0x65,0x3d,0xcf,0xd7,0x8b,0xd2,0xf7,0x42,0x67,0x9e,0xd4,0xc7,0x0d,0xcc,0x1a,0xeb,0x39,0xc1,0xc4,0xcd,0x74,0x1d,0x13,0x78,0xc6,0x75,0x15,0xfd,0xe8,0x8f,0x44,0x4d,0xeb,0x53,0x0a,0xb1,0x4a,0xcf,0xc1,0xbb,0x1c,0x8b,0x1a,0xfb,0x2a,0x30,0xc9,0x2a,0xed,0xd2,0x9f,0x58,0xe2,0xb5,0x51,0xd3,0xad,0x55,0x62,0xd8,0xcd,0x43,0x50,0xef,0xe9,0xd7,0x8f,0xc4,0x1a,0xe9,0x5b,0x9d,0x52,0xce,0xc1,0xb5,0x78,0xab,0x1b,0xf7,0x7c,0xb9,0x2e,0x5e,0xb9,0xb4,0x89,0x6e,0xe0,0x41,0x72,0xda,0xa1,0x60,0x0d,0xbb,0x09,0xd6,0x7a,0x26,0x85,0xed,0xcc,0xdb,0x6d,0xb1,0x33,0xf2,0x1d,0xae,0x3a,0xf7,0x17,0x80,0xdd,0xc9,0xe2,0xdd,0xfc,0x7b,0x73,0xa8,0x3d,0xb6,0x47,0x64,0x54,0x14,0x18,0x72,0x90,0x01,0x1a,0x32,0x68,0xef,0xb3,0x5f,0xda,0xd1,0xb0,0x1f,0x75,0x37,0x73,0x55,0x12,0xa5,0x31,0x77,0x82,0x7f,0x70,0x6e,0x7d,0x18,0x6e,0xea,0x96,0xc1,0xa3,0x4b,0xdb,0x1b,0x1d,0xcd,0xba,0x62,0x7d,0x7d,0x23,0xa7,0x10,0x33,0x8a,0xd8,0xc6,0x37,0xb2,0x97,0x3e,0x1a,0x29,0x00,0x1f,0x00,0x24,0x43,0x1e,0x8f,0xb2,0x54,0x3c,0x95,0x1c,0x80,0xed,0xa9,0x7c,0xc4,0x02,0x02,0xfe,0x62,0x41,0xbd,0xb4,0x2b,0x69,0x10,0x66,0x96,0x1c,0x85,0xdd,0xe3,0xe8,0x63,0x73,0xa5,0xf0,0x8a,0x8e,0xae,0xc8,0xc1,0x6c,0xe9,0xa9,0x7a,0x7e,0x62,0xbe,0x56,0x92,0x29,0x75,0xf7,0x3b,0x37,0x61,0x36,0x42,0x7c,0x9b,0x5c,0x1d,0xa7,0xc3,0xc5,0x87,0xd4,0xb4};
    static std::uint8_t digest84[32] = {0x9e,0x07,0xda,0x2e,0xe5,0x9e,0xe7,0x55,0x2e,0xe9,0x63,0x6a,0xb6,0x14,0x9a,0x6c,0x2f,0x9d,0x1e,0x54,0x07,0x23,0x0e,0xae,0xe7,0xeb,0xe3,0xac,0xdb,0x7a,0x27,0xa0};
    ctx.reset();
    ctx.do_final(digest, msg84, sizeof(msg84));
    if (std::memcmp(digest84, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg85[201]    = {0x57,0x99,0x3f,0x84,0xf5,0xae,0xf5,0x5b,0x03,0xff,0x0f,0x41,0x68,0x48,0x2c,0x25,0x70,0x56,0x00,0x01,0xf7,0x7c,0x68,0x57,0x97,0xf4,0x78,0xde,0x52,0x7a,0x96,0xa7,0x6e,0x11,0x19,0x76,0x48,0x9b,0x9f,0x4e,0x57,0x03,0xe9,0x87,0x40,0x85,0xf2,0xcd,0x78,0xa7,0xe9,0x9a,0x68,0x8a,0x04,0x6f,0x7c,0x1b,0x09,0xed,0x0b,0xb8,0x08,0x13,0x63,0x43,0x8d,0xb3,0x12,0x11,0x6e,0x05,0x39,0x2f,0xc2,0x4e,0x5b,0x92,0xe9,0x0a,0xda,0xf4,0xc9,0x8c,0x94,0x98,0xbe,0x55,0x28,0xaf,0xf6,0xbe,0x7e,0xae,0xa0,0xbf,0x9a,0x07,0x9f,0xf1,0x8f,0x67,0xb7,0x61,0xbc,0x7d,0x12,0x16,0xed,0x5c,0x1e,0x80,0xba,0xe2,0xbd,0xae,0xf7,0x30,0x71,0x10,0xb9,0xcc,0x41,0x65,0x5e,0x29,0x28,0xc4,0x49,0xac,0x6a,0xb1,0xa4,0x09,0x1d,0x36,0xbc,0xad,0xeb,0x9d,0xe0,0x42,0xda,0xec,0x4b,0x72,0xa8,0x17,0xdd,0x86,0x15,0x85,0xd2,0xd6,0x97,0xb3,0xa2,0x1f,0xb5,0x73,0x00,0xe0,0xf0,0xa6,0x35,0x0c,0x65,0x5d,0xbd,0x04,0xff,0xe8,0x44,0xbf,0xae,0x0a,0x50,0x89,0x83,0xbc,0xdd,0xb0,0x20,0xa3,0x6c,0xf6,0x9c,0xe1,0x00,0x36,0x83,0xf5,0xd6,0xe7,0x44,0x4a,0xfa,0x8f,0xb7,0x3f,0xa4};
    static std::uint8_t digest85[32] = {0x61,0xea,0x70,0x90,0x86,0x05,0xf2,0xcd,0x4f,0xd4,0x39,0xc4,0xe3,0x70,0x74,0x49,0x29,0x26,0xea,0x23,0x8c,0x70,0x53,0xe5,0x7f,0x41,0xb8,0xc0,0x16,0xae,0xef,0x96};
    ctx.reset();
    ctx.do_final(digest, msg85, sizeof(msg85));
    if (std::memcmp(digest85, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg86[175]    = {0x93,0x70,0x67,0x14,0x63,0x49,0x0d,0x3e,0x05,0xe6,0x57,0xa2,0xcb,0x8a,0xac,0x29,0x75,0x3b,0x8e,0xbb,0x32,0x7e,0xaf,0xb9,0xec,0x21,0xda,0x1e,0x4a,0x7d,0x66,0x8b,0xc3,0xcb,0x06,0x8d,0xb9,0xfc,0x4a,0x42,0x8c,0x30,0x63,0x30,0x46,0x33,0x44,0x02,0x69,0x62,0x80,0x11,0x9c,0xcd,0x4d,0xb8,0x7f,0xee,0xc6,0x88,0xac,0x33,0xe0,0x22,0xec,0xb3,0xfc,0x5a,0xf8,0x32,0x0a,0x28,0x88,0xf5,0x40,0xcd,0x66,0x3a,0x2d,0xed,0xd1,0x87,0x81,0xda,0x63,0x2e,0x09,0xb0,0xf1,0x3e,0x2e,0xc2,0x2d,0x26,0xb8,0x3e,0xb4,0xb1,0x3b,0xbe,0xd1,0x43,0xb3,0xf0,0x19,0xd2,0x8d,0xe5,0xd7,0x00,0xbf,0x90,0xa7,0xe2,0x24,0x98,0x54,0x1a,0xb1,0x4a,0xd4,0x37,0x65,0x5c,0x95,0x5f,0x43,0x5a,0xe7,0x10,0x2b,0xc1,0x73,0xe1,0xaf,0xa6,0x06,0xa6,0xc0,0x47,0xee,0x37,0xde,0xe3,0xf5,0x55,0x01,0x93,0xcd,0x23,0xa3,0x7b,0xfa,0x1a,0x71,0x2c,0x02,0x42,0xdf,0xec,0x78,0xc9,0xfb,0xcf,0x78,0xde,0xfc,0x50,0x3c,0x3e,0x68,0x6c,0xbc,0x9d,0x2d};
    static std::uint8_t digest86[32] = {0x27,0x31,0x24,0x8d,0x21,0xda,0xf3,0x18,0x8e,0xda,0xc1,0x41,0x63,0x5d,0x5c,0x38,0xa9,0xdf,0xcd,0x06,0x51,0x84,0x88,0x16,0xd6,0x10,0xb2,0x73,0xc3,0x52,0x6c,0x88};
    ctx.reset();
    ctx.do_final(digest, msg86, sizeof(msg86));
    if (std::memcmp(digest86, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg87[198]    = {0xa7,0x25,0xa0,0xb6,0x2e,0x5c,0x03,0x7a,0x40,0x71,0xb6,0x0c,0x44,0x22,0xd4,0xae,0xd6,0x95,0x25,0x87,0xcc,0x59,0xc0,0x7f,0x20,0x69,0xb8,0xb0,0x31,0xa3,0x0a,0xa8,0x4b,0xe0,0x50,0x69,0xed,0x1a,0xa1,0x9b,0x79,0x44,0xe9,0x08,0xc0,0x59,0xb6,0x57,0x9e,0x46,0xa2,0x1c,0xe0,0x3e,0x44,0x2d,0x3f,0x29,0xf0,0x22,0x2d,0x07,0x17,0x48,0xa9,0xc2,0xa9,0x88,0x1b,0xb6,0x74,0x8c,0xaa,0xc0,0x70,0xe9,0x09,0xf9,0x1d,0xe1,0x37,0x11,0xbd,0x09,0x72,0x14,0x50,0x3f,0x42,0xb2,0x6d,0xb7,0x21,0xd5,0x8f,0x06,0x39,0xf8,0x11,0x73,0x42,0x25,0x13,0xa3,0xa9,0x3d,0xe3,0xb0,0xcb,0xd6,0xf4,0x2a,0xce,0xd2,0xe8,0xb8,0xa0,0x2e,0x2c,0x1d,0x55,0x08,0xa5,0x55,0x2c,0x67,0x0d,0xb5,0x53,0x5c,0xe9,0xb5,0x8f,0xf7,0x6d,0x94,0x3d,0x0e,0x58,0x75,0x16,0xd4,0x96,0x7c,0xa5,0xbf,0x91,0x89,0x37,0x6f,0x81,0x4a,0xe2,0xdb,0x8a,0xc6,0x47,0x1b,0x17,0x2c,0x0a,0xf3,0x86,0xb2,0x76,0xef,0xa4,0xe9,0xc2,0xff,0xbe,0xa5,0x46,0x1a,0xa0,0x9f,0x6d,0x9e,0x85,0xa3,0x9e,0xe2,0x63,0x5e,0x5d,0xb7,0x2a,0xb8,0x3f,0x47,0xfc,0xb5,0xad,0x11,0x6d,0xae,0xe4,0x9c};
    static std::uint8_t digest87[32] = {0xf0,0x17,0x77,0x45,0x78,0xe2,0xc3,0x20,0x3c,0xe7,0x38,0x22,0x88,0x7e,0xb1,0x24,0xe2,0x5e,0xf6,0xf9,0x29,0x2b,0x46,0x17,0xf7,0x8b,0x0a,0xd5,0xa5,0xa5,0xde,0xdd};
    ctx.reset();
    ctx.do_final(digest, msg87, sizeof(msg87));
    if (std::memcmp(digest87, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg88[297]    = {0x73,0x76,0xd2,0x33,0x64,0xe5,0x00,0x81,0x90,0x71,0x7a,0x41,0x12,0x81,0x9f,0x7b,0x39,0x02,0xb2,0x58,0x1f,0x6d,0xd0,0xed,0x51,0xd1,0xa4,0xf5,0x2b,0x98,0x0f,0x58,0x25,0xf2,0xfd,0x6a,0xc6,0x66,0x18,0x8a,0x31,0x92,0xb0,0x4f,0x7e,0x9a,0xf6,0x30,0x60,0x58,0x7f,0xbe,0x67,0xbb,0x21,0x7c,0x1f,0x06,0x50,0x42,0xd5,0xe3,0x8a,0x0f,0xd1,0x8b,0x6e,0x8f,0x97,0x06,0xf3,0x3c,0x84,0x49,0x68,0xd9,0xa4,0x4e,0x7a,0x8b,0xea,0x51,0xa8,0xcd,0xab,0x72,0xd8,0xfa,0x0b,0x5e,0x2b,0xd0,0x3a,0xa9,0x78,0x21,0x19,0x7a,0xc2,0x64,0x43,0x58,0x32,0x7f,0x0c,0x42,0xea,0xe9,0x07,0xe4,0x67,0x6c,0x78,0x3e,0x81,0x3d,0xcb,0x70,0x3c,0x49,0xc3,0x6f,0xe8,0x06,0x4c,0xfc,0xbc,0x69,0x6e,0xae,0x6f,0x28,0x2a,0x4b,0xf2,0x09,0x62,0x9d,0x67,0x03,0x1e,0xac,0xee,0x9a,0xa2,0x7f,0x45,0xb4,0xc3,0x4c,0x74,0x90,0x25,0xc4,0x93,0xd9,0xa3,0x09,0x75,0x0e,0x1e,0x4d,0x03,0xaa,0x9e,0xf7,0xce,0x16,0x16,0x8c,0xa9,0x9a,0x46,0x97,0x1f,0xc2,0xb8,0x16,0xb5,0x7a,0xd0,0x38,0xbd,0xa5,0xdf,0x3a,0xb8,0xfe,0x7a,0x05,0xd0,0x06,0x13,0x24,0xdf,0xb3,0xbd,0xf3,0xfc,0x82,0xab,0xe6,0xf7,0x92,0xf7,0xe7,0xcc,0x89,0x11,0x4f,0x72,0x60,0xad,0x1a,0x1e,0xc7,0x73,0x68,0xb3,0x04,0xae,0xdd,0x26,0x4f,0x32,0x83,0x22,0xee,0x34,0x13,0x16,0x6e,0x64,0xb2,0x76,0xe9,0x3b,0x56,0x87,0x73,0xd1,0x2f,0x4a,0xa6,0xfe,0xa0,0x84,0xb1,0x10,0x7c,0xf8,0xbb,0x6c,0x05,0xbf,0x59,0x06,0x09,0xdc,0x55,0x26,0x6d,0x34,0x2b,0xe1,0x8a,0x69,0x93,0x39,0x7c,0xe9,0xe1,0x3a,0x47,0x4e,0x30,0x14,0x4f,0xdb,0xd9,0x12,0x1a,0x6e,0x3d,0xf2,0x72,0x8a,0x87,0x8a,0x94,0x9d,0x19,0x5c,0x91,0x0f,0xa3,0x22};
    static std::uint8_t digest88[32] = {0x92,0xdc,0x48,0x58,0xea,0x31,0xb7,0xba,0xe4,0xe3,0x9b,0xee,0xeb,0xea,0x42,0x14,0x62,0xc8,0x0a,0x30,0xa0,0xf2,0x8d,0xb4,0x60,0x22,0x3c,0xb6,0xc2,0x73,0x94,0x15};
    ctx.reset();
    ctx.do_final(digest, msg88, sizeof(msg88));
    if (std::memcmp(digest88, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg89[303]    = {0xa2,0xab,0x14,0x07,0xd5,0x8b,0xf3,0x2f,0x83,0xac,0xd5,0x78,0xd6,0x6d,0xd1,0xa0,0x8a,0xd9,0x3f,0xac,0xf1,0x66,0x27,0x63,0x29,0x6d,0xa6,0xdb,0x7a,0x22,0xf2,0x83,0x5d,0x39,0x42,0x04,0xf0,0xcc,0x8d,0x0a,0xe7,0xfd,0x14,0xff,0x73,0xf9,0x48,0xb8,0xf3,0xf1,0x6c,0x62,0xe0,0x6e,0x30,0xdd,0x06,0xbf,0x5f,0xa7,0x31,0x47,0xc3,0x4c,0x7c,0x05,0xcc,0xfa,0x8e,0xa7,0x94,0xfa,0xe1,0x6b,0x39,0x04,0xb1,0xf4,0x93,0xf7,0x94,0x4a,0xbc,0xfd,0xee,0xab,0x37,0xd1,0x98,0x67,0x75,0x2e,0xde,0xb7,0x61,0xe6,0x25,0x1f,0x42,0x96,0xf3,0x5d,0x28,0xab,0x24,0x9c,0x5e,0x76,0x41,0xf6,0xec,0x01,0x53,0x1f,0xd6,0x88,0xb3,0xab,0xe8,0x3b,0xb5,0x3c,0xfb,0x12,0x55,0x8a,0xcc,0x13,0xeb,0x28,0x27,0xe8,0x76,0x4a,0x32,0x5b,0xe2,0xc2,0x1e,0xa6,0x97,0xf7,0x1a,0x50,0x76,0x73,0x40,0x77,0xd3,0x6e,0xf0,0x55,0xa7,0x6f,0xd5,0x3f,0xac,0x15,0x71,0xc0,0x50,0x24,0x54,0x4e,0xde,0x25,0xff,0xed,0x3b,0xb5,0x25,0xf2,0x7a,0x06,0x00,0x09,0x14,0xe2,0xce,0xd1,0x3d,0x3f,0x4d,0x6f,0xd1,0x89,0x95,0x86,0x54,0x6f,0x99,0xe1,0x45,0x28,0x63,0xb4,0x77,0xbf,0xec,0x4e,0xc6,0xef,0x44,0x4f,0x90,0x89,0x8e,0x32,0x7f,0x6a,0x6f,0xfc,0x94,0xcb,0x64,0x8d,0x22,0xb7,0xf7,0x40,0x73,0x3b,0xf2,0xdc,0x54,0x0a,0x48,0x03,0x85,0x4b,0xac,0x01,0xdd,0x2f,0x8b,0x73,0xa1,0xd1,0x5b,0x9e,0x8d,0x32,0xe9,0x6f,0xee,0x2a,0xf9,0x35,0xa9,0x72,0x59,0xae,0x17,0xfd,0xd6,0x92,0x72,0x61,0x53,0x84,0xcb,0xd6,0xa8,0xa9,0x57,0x96,0x48,0xf9,0x32,0x72,0x5e,0xcd,0xac,0x9c,0x69,0xc2,0xc0,0x03,0xc5,0x33,0x53,0xc2,0x5a,0xc9,0x42,0x3d,0x33,0xbf,0x85,0xc2,0x4b,0x84,0xe2,0x3a,0x90,0x84,0x96,0x0f,0x53,0x47,0xfc,0xad,0x85};
    static std::uint8_t digest89[32] = {0xa1,0x2a,0x47,0x14,0xac,0x56,0x39,0xde,0xe5,0x26,0x7d,0xf0,0x34,0x27,0xda,0xb6,0xad,0xcd,0xad,0xf2,0x69,0xa9,0x27,0xea,0x0f,0x72,0x18,0x95,0xf3,0x67,0x4b,0x83};
    ctx.reset();
    ctx.do_final(digest, msg89, sizeof(msg89));
    if (std::memcmp(digest89, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg90[68]    = {0x1a,0xb4,0xfe,0xd6,0x09,0xf5,0xb7,0xa9,0xe4,0x88,0x20,0x0c,0x93,0x2e,0x40,0xe1,0x6b,0xde,0x85,0x89,0x8a,0xa5,0x59,0xcd,0x26,0x9e,0xd5,0xbd,0x27,0x30,0xb0,0xd9,0xc2,0xaa,0x92,0x5d,0x3a,0xe6,0xe4,0x72,0xa1,0x84,0x46,0x1f,0xd6,0x3e,0xb6,0x87,0x78,0xeb,0x5a,0x32,0xb4,0xaa,0xe3,0x2b,0x79,0xe5,0x20,0xe5,0x16,0x43,0x4e,0x45,0x5f,0xe0,0x8f,0xc2};
    static std::uint8_t digest90[32] = {0x6a,0xa0,0x7b,0xda,0x52,0x2f,0x46,0xc3,0xc5,0xd0,0xe2,0x59,0xc2,0x78,0x53,0xe9,0x5b,0x09,0x01,0x99,0x67,0x78,0xac,0x65,0x95,0xee,0x03,0x48,0x1b,0x95,0x83,0x3a};
    ctx.reset();
    ctx.do_final(digest, msg90, sizeof(msg90));
    if (std::memcmp(digest90, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg91[92]    = {0x3d,0x6f,0x60,0xb3,0xf0,0x65,0xc9,0x9f,0x71,0x4a,0x9d,0x18,0x36,0x8a,0x62,0x4a,0x49,0xc7,0x9b,0xc8,0x8e,0x2d,0x04,0x8b,0x79,0x74,0x79,0xf9,0x08,0xdb,0x1b,0xa8,0x65,0xb9,0xd5,0x34,0x94,0x71,0x6b,0x24,0xa3,0x91,0x2b,0x59,0x38,0xb9,0xd9,0xaf,0x0e,0x62,0xae,0xec,0xb4,0xa0,0xe1,0x0d,0xdd,0xdb,0xeb,0x65,0x39,0x91,0x6a,0xda,0xe0,0x3c,0x05,0xa1,0xe0,0x43,0x68,0xe6,0x7a,0x36,0x74,0xca,0x2e,0x07,0x67,0x0e,0xf2,0x87,0x26,0x04,0x77,0xce,0x2e,0x28,0x95,0xbe,0x65,0x56};
    static std::uint8_t digest91[32] = {0x11,0x8a,0x3e,0x7b,0xde,0xa7,0x13,0xbb,0xd0,0x7d,0x61,0x39,0x27,0x2f,0x9c,0xd1,0x63,0x4e,0x9c,0xd4,0x01,0x11,0xd2,0x9a,0xee,0x44,0x4e,0x2a,0xed,0x07,0x1b,0x50};
    ctx.reset();
    ctx.do_final(digest, msg91, sizeof(msg91));
    if (std::memcmp(digest91, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg92[504]    = {0xe8,0xcd,0xc5,0x10,0x43,0x8c,0x3d,0xec,0x00,0x9f,0xdf,0x80,0x3d,0xb8,0xe0,0x5b,0x33,0x22,0xa0,0x96,0x0b,0x40,0x52,0x3c,0xac,0x5d,0x26,0x90,0xc2,0x16,0xa4,0x20,0x3b,0xa0,0xbb,0xea,0x59,0x90,0x2b,0x1b,0x8f,0x9c,0x8e,0xd4,0x6b,0xed,0x52,0xa2,0x01,0xe7,0x06,0xac,0x69,0x66,0xec,0x9f,0xf4,0x95,0xbc,0xac,0xf2,0x67,0xaf,0xf7,0x8b,0xe8,0xd1,0x77,0xb9,0x40,0x74,0x43,0xca,0x01,0x80,0x08,0xb8,0xbd,0x7e,0x28,0xa5,0x1c,0xd4,0x0b,0x65,0x2b,0x00,0x3c,0xf7,0xfb,0xf1,0xfc,0x79,0x2a,0xf6,0x8c,0x1d,0xe8,0x72,0x0e,0x48,0xc6,0xa7,0x25,0xa0,0x54,0x2e,0x45,0x2a,0x31,0xa3,0xb8,0x1a,0x61,0x50,0xcf,0x36,0xfc,0x83,0xb6,0xd6,0xac,0xcd,0x56,0xa3,0x68,0x40,0x4f,0x93,0xcf,0x2f,0x35,0xee,0xe5,0x0f,0xe3,0xb1,0x2e,0x05,0x70,0x77,0x05,0xe4,0x1e,0x58,0x8a,0x52,0x0e,0x4e,0xfc,0x3d,0x08,0xa3,0x4d,0x94,0x58,0x8a,0xe3,0x0f,0x81,0xb4,0x0e,0x98,0x23,0xfd,0xdd,0x68,0x3f,0x9a,0x32,0x70,0x69,0xa8,0x4b,0xa2,0x10,0x7c,0xfd,0x0c,0xf1,0x33,0x94,0x25,0x70,0x9d,0xe5,0x34,0x12,0x11,0xf0,0x9c,0xec,0x77,0xa3,0x8c,0x3c,0x97,0xf6,0x90,0x19,0xdc,0xf1,0x33,0x60,0xe7,0xfe,0x65,0x34,0xbf,0x1b,0x36,0x1a,0x18,0x3b,0xc8,0xe1,0x2f,0x4b,0x3b,0x77,0xbf,0x78,0xc5,0x5a,0x80,0xfc,0x74,0x55,0x08,0x5e,0x3f,0xe7,0xe9,0x83,0xbc,0xa3,0x6e,0xf7,0xb8,0x6e,0xfd,0x1e,0xcd,0xe4,0x14,0x88,0x64,0xca,0x08,0xb0,0xef,0xc9,0xdc,0x72,0xd2,0xde,0xea,0x5c,0x40,0xb5,0x09,0xc7,0x06,0x96,0x5d,0xbc,0x89,0x46,0x01,0x71,0xed,0x91,0xfc,0x41,0xff,0xc7,0xa8,0x85,0xe1,0xde,0xb2,0xb4,0x8d,0xac,0x20,0xe1,0x15,0x74,0x03,0xa1,0x32,0xfb,0xb0,0xa3,0xf5,0x01,0x64,0x19,0xca,0x15,0x99,0x1c,0x2a,0x6f,0x89,0x05,0x3d,0xcb,0x2c,0x9a,0xbc,0x32,0x6c,0x60,0x5b,0x77,0x85,0xc8,0x86,0xbf,0x07,0x78,0xf5,0xdc,0x36,0xb2,0x6a,0x00,0x0f,0x67,0xac,0xd4,0xf5,0xc0,0xff,0xc5,0x7f,0xec,0xc0,0x87,0x58,0x99,0xb5,0x7b,0xa0,0x39,0xad,0x88,0x1e,0x6c,0x4b,0x34,0x99,0x86,0x60,0x91,0x67,0x7b,0xd7,0xdd,0xac,0x34,0xce,0x32,0xbb,0x63,0xdd,0x46,0xa0,0x67,0xe8,0x58,0xb4,0xfc,0x3e,0xe6,0x37,0x07,0x74,0x40,0xd7,0xaa,0x17,0x23,0xb7,0x14,0x16,0x87,0xb0,0x2a,0xe6,0xdb,0x66,0x03,0x27,0xd8,0x0f,0x79,0xe4,0x3a,0xd8,0x68,0x3e,0x78,0xef,0x8b,0xc7,0xe6,0x06,0x25,0x40,0x2d,0x54,0x8a,0x37,0x48,0x97,0xa0,0x9a,0x8f,0x9d,0x04,0x08,0x01,0x63,0x6d,0x53,0x92,0x3c,0x01,0x50,0x5f,0xe5,0xd5,0x55,0xee,0x22,0x0d,0xab,0x2c,0x57,0xa1,0x95,0xe0,0xe0,0x35,0xe8,0x86,0x8a,0xdd,0x41,0x1c,0x17,0x64,0x7d,0xf5,0x53,0x3c,0xaf,0x82,0x6a,0xf2,0xd9,0x89,0x46,0xf1,0x7b,0x87,0x56,0xab,0x58,0xe6,0xc1,0xba,0x46,0xc5,0xdc,0x2d,0x3d,0xd0,0x10,0x34,0x37,0x17,0xbf,0xa7,0x43,0x90,0x01,0x46,0x28,0x45,0x38,0xa0,0x0a,0x7e,0xf0,0x7e,0x91,0xc1,0x40,0xd2,0xcd,0x26};
    static std::uint8_t digest92[32] = {0xb8,0xb4,0x7c,0x13,0x5d,0x04,0xfb,0xb8,0x46,0xf7,0xce,0x9d,0x22,0x82,0x00,0x60,0xe4,0x4c,0x82,0x60,0x77,0x76,0x25,0x28,0x7e,0xc4,0x1b,0x84,0x77,0x30,0xcd,0xc6};
    ctx.reset();
    ctx.do_final(digest, msg92, sizeof(msg92));
    if (std::memcmp(digest92, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg93[425]    = {0x60,0x0b,0x34,0xfc,0x83,0x9c,0x82,0x09,0x74,0x12,0x4d,0xa8,0x8c,0x8d,0x34,0x1d,0x6c,0x75,0xf4,0x1b,0x54,0xd4,0xf8,0xf8,0x30,0xf8,0x1e,0x0d,0x99,0x3a,0x45,0x2f,0x9b,0xd1,0x74,0x82,0x5e,0xd7,0xed,0x43,0x11,0x54,0x73,0xe5,0xa4,0x87,0xd8,0xe4,0x4b,0x2c,0x19,0xfa,0xfe,0x5d,0xd4,0x7e,0xd5,0x54,0x68,0x9d,0xa0,0x5c,0x19,0xa6,0x7c,0x8d,0x7d,0xbe,0x88,0x27,0x5c,0xdd,0x27,0xae,0xb8,0x26,0x6f,0x68,0xbe,0x08,0x42,0x3d,0x10,0xa1,0x5c,0x7d,0x46,0x7a,0xf6,0x29,0x18,0x89,0x8d,0xc1,0xda,0xb9,0x2c,0xff,0xfe,0x3e,0x51,0x57,0xd0,0x3b,0xe2,0x6a,0x2d,0xd4,0x7a,0xd2,0x11,0x40,0x7e,0x73,0x87,0x58,0x00,0x3e,0xe8,0xa7,0xc0,0x1c,0x42,0x6c,0x3f,0x4d,0x50,0xf0,0xf7,0x5e,0x93,0xa0,0x44,0x18,0x54,0x07,0x67,0x96,0xa9,0x3c,0x0f,0x41,0x27,0xd7,0xe3,0xaf,0xb6,0x9c,0x33,0xaf,0x22,0xf6,0x63,0xe5,0xe1,0x73,0x27,0xf0,0xdc,0x7d,0x7c,0x2e,0xaa,0x8e,0x2b,0xa1,0xdf,0xe7,0x81,0x38,0x53,0xfd,0xbb,0xf1,0x3c,0xcc,0xf2,0x8f,0x6a,0x94,0x9b,0x46,0x42,0xd0,0xd6,0x6b,0x9b,0xaf,0x20,0xd1,0xe4,0x2b,0xc0,0x1d,0x26,0x3e,0x59,0x68,0x75,0x69,0x3d,0xb6,0x8a,0x79,0x2d,0xde,0xa1,0xb8,0xc8,0x82,0x4b,0xbd,0x15,0x30,0xad,0x2d,0x2d,0xba,0x82,0x9b,0x9d,0xe5,0xa7,0x26,0xa9,0xe1,0xba,0x39,0x15,0xda,0xd1,0x1c,0x4d,0xb8,0x81,0xd6,0x72,0xf2,0xd0,0x08,0xe4,0x21,0x8c,0x02,0xd4,0x9c,0xe0,0x51,0x7e,0x67,0x47,0xd4,0x5c,0xa7,0xa4,0xbf,0xa9,0x8d,0xbc,0xa7,0x6b,0xc7,0xa7,0xcc,0x85,0x79,0xc7,0x33,0xf9,0x22,0x2a,0x83,0x0b,0x3d,0x76,0x3e,0x52,0x97,0xa1,0xe3,0x87,0xf9,0x87,0x8f,0xb5,0xc2,0x96,0x57,0xae,0x20,0xb6,0x74,0xb4,0x08,0x67,0x7f,0x21,0xe9,0x4b,0x75,0x62,0xb0,0x54,0xff,0x64,0xdf,0xf0,0x49,0xd9,0x12,0x16,0xd5,0xb0,0x46,0xa9,0x1f,0x4c,0x35,0xac,0x81,0x13,0x8a,0x02,0xa8,0xcd,0x00,0x6d,0xa1,0x63,0x6f,0x61,0xde,0x48,0xac,0x3b,0x9e,0x1f,0xe0,0x35,0xdb,0x26,0x60,0xaa,0x1c,0x39,0xde,0x35,0x25,0x6e,0xe9,0xa6,0x9a,0x49,0x8a,0x48,0x33,0xbf,0x14,0xbf,0x19,0x65,0xcf,0xae,0x65,0xe2,0x68,0x6e,0x99,0xc9,0x2b,0xd5,0x55,0x9d,0x38,0x6e,0x41,0x2a,0x91,0xb1,0x57,0xc4,0x6a,0xcf,0xb5,0xc2,0xad,0x5e,0x2f,0x10,0x7e,0xda,0xbd,0x5d,0x9e,0xd5,0x1a,0xac,0x04,0x7e,0x75,0x33,0xbf,0x17,0x8f,0xbe,0x2f,0xa8,0x70,0x7f,0x93,0x57,0xa9,0x65,0xf7,0x48,0xce,0x1c,0x43,0x30,0x78,0x15,0xec,0x83,0x34,0x97};
    static std::uint8_t digest93[32] = {0x3f,0x6e,0x8f,0x8f,0x0d,0x47,0x5a,0x58,0x00,0xa3,0x20,0x16,0xd8,0x1e,0xc2,0x4d,0x94,0xe1,0x05,0x8a,0x2d,0xa5,0x5d,0x2e,0x49,0x38,0x6d,0x67,0x01,0xb6,0xac,0xa8};
    ctx.reset();
    ctx.do_final(digest, msg93, sizeof(msg93));
    if (std::memcmp(digest93, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg94[83]    = {0x45,0xa6,0x69,0x2e,0x50,0x20,0xb7,0xf4,0x03,0x0e,0x4c,0xfe,0xa1,0x98,0x60,0x47,0x92,0x73,0xd2,0xe9,0x86,0xc6,0x65,0x08,0xf3,0xe3,0x16,0x0b,0x33,0xe1,0x9d,0x4b,0xd8,0x8a,0x72,0x8b,0x87,0x30,0x6b,0xb0,0xe9,0x3d,0xca,0x53,0x17,0xa4,0xdc,0xd4,0x47,0x1c,0x67,0x6c,0xf3,0x1b,0x67,0x63,0xfc,0xf6,0xaa,0x92,0xab,0x68,0xc1,0xa5,0xcb,0x38,0x96,0x0b,0x29,0x6d,0xf7,0xac,0xea,0xcd,0x47,0xf6,0xb3,0x43,0xde,0x83,0xa2,0x8a,0x91};
    static std::uint8_t digest94[32] = {0x92,0x0c,0x91,0xb4,0x34,0x44,0x9f,0x20,0x12,0x7d,0x27,0xe3,0x54,0x00,0xe1,0xf0,0xcc,0x31,0x57,0x4d,0xc6,0x63,0xe1,0x06,0x33,0xd0,0x5f,0x5a,0x63,0x40,0xe9,0x7a};
    ctx.reset();
    ctx.do_final(digest, msg94, sizeof(msg94));
    if (std::memcmp(digest94, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg95[367]    = {0x83,0xae,0x26,0x88,0x8f,0xe2,0x15,0x9d,0xd7,0x5a,0x1d,0xaa,0x34,0x3c,0xfb,0x2a,0x8e,0xe6,0xd0,0x3e,0x20,0xef,0x2b,0x62,0x72,0x83,0x0d,0x2e,0x7d,0x73,0x36,0x2a,0x89,0xbc,0xee,0x5f,0xf7,0x70,0xb8,0x6b,0x6f,0xe1,0x8e,0x5f,0xba,0xc7,0x96,0x19,0xf6,0x2c,0xc4,0x21,0x0d,0x48,0x51,0x58,0x1a,0xe0,0xc0,0x92,0x92,0xb3,0xe0,0x10,0x63,0x9b,0x36,0x89,0x80,0x0e,0xcc,0xfb,0x38,0x8b,0xd4,0x62,0xf9,0xfb,0xe3,0x93,0x7d,0x4f,0xac,0x33,0xd6,0x4b,0x56,0x3b,0x00,0xad,0x6c,0x54,0xf8,0xda,0x08,0x33,0xc1,0x83,0x66,0xc1,0x01,0xdf,0xf2,0x82,0xb0,0x61,0x72,0x66,0x53,0xfd,0xcf,0x59,0x7b,0x8c,0x33,0x8f,0x46,0xe5,0x54,0xda,0x1a,0xab,0x23,0x2b,0x4a,0x2c,0x93,0xa6,0xf0,0x41,0x97,0x65,0x55,0x36,0xcd,0x5f,0x91,0xc5,0xeb,0x32,0x80,0xca,0xe6,0xb4,0x6c,0xe8,0x3f,0x3e,0x00,0x31,0x7b,0xc1,0xa0,0x46,0x9d,0xbd,0x87,0xaa,0xad,0x87,0x0e,0x33,0x58,0x52,0xd3,0xa2,0x04,0xff,0x4e,0xe4,0xfc,0xf6,0x57,0xe8,0xaf,0x43,0xef,0x44,0x8f,0xd1,0x87,0x55,0x8e,0x4d,0x01,0xa9,0xcb,0x3e,0xac,0x91,0x69,0x93,0xb4,0x2f,0x3c,0x46,0x87,0xc4,0xf2,0x47,0xe4,0x17,0x5a,0xcf,0xcc,0x00,0xee,0x9e,0x89,0x58,0xd3,0x98,0xe5,0x06,0x35,0x4d,0x26,0xcf,0xfa,0xaa,0x9d,0x50,0x06,0x27,0x09,0x26,0xe5,0xd1,0xfe,0xc0,0x6e,0x30,0xd7,0x5c,0xa0,0xf3,0xd3,0xf9,0x78,0xd5,0xaa,0xaa,0xbd,0xe4,0x88,0x55,0x70,0xfc,0xe7,0x9e,0xf2,0xbd,0x56,0x9d,0xd2,0x95,0xcd,0x3e,0x19,0xc6,0x9c,0x73,0xb9,0xfe,0x2e,0xd2,0x6f,0xbe,0x5c,0xdb,0x14,0x3b,0xbb,0x29,0x99,0x6d,0xa1,0x91,0x28,0xc4,0xc2,0x7a,0x3f,0x76,0x6c,0xac,0x81,0xb2,0xb6,0x26,0x70,0xa7,0xb9,0x26,0x1c,0x80,0xdf,0x47,0xa4,0xe9,0x50,0x78,0xcf,0xfe,0xd2,0xfe,0x81,0x38,0xa7,0x52,0x0e,0xde,0xfd,0x7f,0xc3,0x3e,0x49,0x0d,0xb4,0x4c,0x90,0x9e,0x2f,0xed,0x68,0x78,0x7f,0x0c,0xcf,0x5d,0xd6,0x98,0xb5,0x13,0xa6,0xac,0xf6,0x11,0x75,0x93,0x8d,0x89,0x4e,0x30,0x57,0x79,0xe7,0x6b,0x94,0x2f,0x8f,0x3c,0xce,0xa5,0x87,0x91,0xb6,0x1e,0xd2,0x51,0xa6,0xe7,0x4b,0x07,0x16,0x7b,0x5b};
    static std::uint8_t digest95[32] = {0x22,0xd5,0x07,0x5a,0x4a,0x6a,0x0b,0xc4,0x9e,0x4b,0x3a,0xc4,0xf9,0xa3,0xb8,0x23,0xa5,0xa2,0xc3,0x36,0x67,0xd8,0x12,0x4c,0xbe,0xe7,0x16,0xd3,0x52,0x8c,0x85,0xcd};
    ctx.reset();
    ctx.do_final(digest, msg95, sizeof(msg95));
    if (std::memcmp(digest95, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg96[41]    = {0x51,0x3d,0xd8,0x41,0x35,0x2c,0x98,0xeb,0x6f,0xa7,0xce,0x0f,0x12,0xd7,0x43,0x61,0x58,0x5e,0x88,0xb8,0x6a,0xd5,0x0a,0x45,0x97,0x5e,0x40,0x4a,0xfe,0xde,0xb9,0x4b,0x69,0xd1,0xae,0x54,0xd0,0xe0,0xac,0x15,0xa0};
    static std::uint8_t digest96[32] = {0xc8,0x48,0x08,0x35,0x3b,0x43,0xb0,0xfe,0x86,0xf8,0x36,0x49,0x28,0x27,0x2f,0xa2,0xc3,0xbd,0x85,0x2b,0xbe,0xa0,0x15,0x0e,0xe9,0xc2,0x40,0xf2,0xe2,0xb7,0x0e,0xef};
    ctx.reset();
    ctx.do_final(digest, msg96, sizeof(msg96));
    if (std::memcmp(digest96, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg97[223]    = {0x0f,0x8d,0x94,0x28,0x74,0x38,0x67,0x6f,0xb6,0x1b,0x3e,0xba,0x11,0x2e,0x9d,0x8c,0x8c,0xc1,0x51,0xd5,0xe7,0xeb,0x02,0xe0,0xa2,0x00,0x62,0x1e,0xdc,0x23,0xf2,0x47,0xd2,0x0a,0xcf,0x33,0x03,0x49,0x5e,0xae,0x24,0x0c,0x62,0xbd,0xae,0x1a,0x69,0xcf,0x3d,0x04,0xf2,0xbc,0xa9,0xa3,0xd8,0x6f,0xf3,0x26,0x7f,0xe6,0x86,0xf2,0x6b,0xfb,0xa3,0xaf,0xd7,0xc8,0xaa,0x7e,0x73,0xf5,0x75,0x2f,0xe4,0x1a,0xd7,0x6d,0xe3,0xf2,0x2f,0x19,0xbe,0x15,0x1d,0x28,0x67,0x8a,0x91,0x31,0x19,0x94,0x49,0xb7,0xd7,0xb5,0xde,0x98,0x8e,0xd9,0xbb,0x6b,0x52,0x98,0x17,0x1d,0x4d,0x00,0x05,0xac,0xb7,0xf6,0x19,0x1c,0x5a,0x34,0x32,0x90,0x11,0xda,0x47,0x46,0x0d,0x92,0x59,0xe1,0x3a,0x41,0x5e,0xde,0xf0,0x38,0xf5,0xb1,0xe7,0x9c,0x0a,0xe6,0x1d,0xee,0x2d,0x09,0x5c,0x5f,0xf9,0x0c,0x06,0x50,0xae,0x3c,0xe0,0x90,0x07,0xad,0x90,0xc8,0xad,0xa2,0x3f,0x71,0x26,0x48,0x49,0x80,0x61,0x6e,0x3a,0x14,0xb4,0x13,0x32,0xeb,0x9a,0x8a,0x06,0x1d,0xeb,0x33,0x91,0x46,0xdf,0xfe,0x26,0x4b,0x39,0x17,0x4c,0x4f,0x14,0x37,0x67,0x17,0xb2,0x5e,0x3b,0x79,0xf9,0xa7,0x4d,0x4d,0x8b,0xb3,0x42,0xf8,0x64,0xfd,0xd1,0xa9,0xe8,0xce,0x51,0xd5,0x8d,0xa5,0x43,0x8c,0xa0,0x55,0xe7,0xbb,0x1b,0x34,0x5e};
    static std::uint8_t digest97[32] = {0x39,0x07,0x69,0xe6,0xbd,0x8a,0x7b,0x76,0xd9,0x69,0x71,0x1e,0xee,0x3d,0x15,0xe1,0xc0,0xaa,0xfa,0xef,0xd3,0x21,0xcc,0x7a,0x7e,0x8d,0xb8,0xe7,0x77,0x60,0xfa,0x09};
    ctx.reset();
    ctx.do_final(digest, msg97, sizeof(msg97));
    if (std::memcmp(digest97, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg98[61]    = {0x3c,0xcf,0x1c,0x6b,0x84,0x58,0x0c,0xc2,0x6e,0x93,0x89,0x90,0x34,0x55,0x1b,0xed,0xea,0xd6,0xc4,0xb8,0xd7,0xcb,0x43,0xe6,0xb0,0x17,0xa1,0x92,0xb9,0x6f,0x56,0x2f,0x60,0x13,0x60,0x57,0x59,0xbe,0x34,0x62,0xdb,0x5b,0xab,0x38,0x69,0xe0,0xb0,0xb3,0x64,0x34,0x6e,0xb5,0x38,0x82,0x8d,0xf1,0x33,0x0d,0xce,0x71,0xe2};
    static std::uint8_t digest98[32] = {0x9f,0x03,0x0e,0xf0,0xb3,0x2a,0x74,0x3d,0xd3,0xac,0x60,0x6f,0x90,0x3a,0x0b,0xd2,0x76,0xd3,0xd1,0x22,0x20,0xbf,0xb3,0x9d,0x82,0x45,0x51,0x0c,0x01,0x9b,0x97,0xe3};
    ctx.reset();
    ctx.do_final(digest, msg98, sizeof(msg98));
    if (std::memcmp(digest98, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
    static std::uint8_t msg99[112]    = {0x54,0x18,0x24,0x46,0xde,0xed,0xdc,0xe9,0x72,0x68,0x48,0x2f,0xab,0x16,0x24,0x40,0x80,0xfa,0xf1,0xa8,0xe1,0xde,0x3a,0x24,0x15,0xe2,0x62,0xf6,0x60,0xe9,0x65,0xf7,0xc0,0xdb,0xa7,0x8c,0x30,0x26,0x74,0xf5,0x6a,0x4f,0x88,0xdc,0xdd,0xcc,0x98,0x43,0xec,0xd3,0xb3,0x08,0x03,0xd3,0x35,0xa2,0x8f,0xae,0x2e,0x3d,0x68,0xd1,0xd7,0x3d,0x42,0xaf,0xa6,0xae,0x68,0x13,0xd4,0x27,0x15,0x21,0x12,0xe2,0x43,0xad,0x3e,0xfa,0xeb,0xce,0xf6,0x18,0xf4,0xd4,0x2a,0x39,0x49,0x40,0x44,0x83,0x70,0x92,0x50,0xf6,0x17,0x49,0xd3,0xc4,0xb4,0x3a,0xb0,0x2b,0x00,0x27,0xee,0x60,0x82,0x2a,0x61,0x97};
    static std::uint8_t digest99[32] = {0xbd,0x05,0xcc,0x09,0x8c,0x60,0x78,0xba,0x3f,0xf9,0xd2,0xbe,0x44,0x4a,0x12,0x80,0x7a,0x09,0x1d,0x5c,0xd1,0x13,0xbf,0x77,0xd6,0x44,0xce,0x92,0x23,0xf0,0x05,0xeb};
    ctx.reset();
    ctx.do_final(digest, msg99, sizeof(msg99));
    if (std::memcmp(digest99, digest, SM3::DIGEST_SIZE) != 0)
    {
        throw std::runtime_error("err in sm3");
    }
}
